|
Aus der Kategorie:
PHP
Dienstag, 14. September 2010 (Zuletzt aktualisiert am Freitag, 20. Mai 2011) |
|
|
Mit dieser PHP Klasse können MySQL Datenbankverbindungen aufgebaut werden. Außerdem stellt sie Methoden zur Verfügung um Queries abzusetzen und die Ergebnisse zu verarbeiten.
Nach Oben Quellcodeclass dbconnect { /* * Konstante aus configuration wurden eingelesen und hier eingesetzt */ var $host = 'host.example.com'; var $database = 'db_example'; var $db_user = 'user_example'; var $db_pass = 'password'; var $db_port = '3306'; /* * Funktion um die Verbindung herzustellen * @Error: {connect} * statt mysql_connect() wäre auch mysql_pconnect() denkbar, dann ist die Verbindung aber persistent! */ function connect() { $this->connection = @mysql_connect($this->host, $this->db_user, $this->db_pass) or die("{connect} Database Error: ".mysql_errno()." : ".mysql_error()); $this->select_database = @mysql_select_db($this->database, $this->connection) or die("{select_db} Database Error: ".mysql_errno()." : ".mysql_error()); } /* * Funktion um einen MySQL Befehl zu senden * @Error: {query} */ function query($querystring){ if ($this->connection == false) $this->connect(); if ($this->connection == false) return; $result = mysql_query($querystring, $this->connection) or die("{query} Database Error : ".mysql_errno()." : ".mysql_error()); return $result; } } Beispiel$Connection = new dbconnect(); $select = $Connection->query("SELECT * FROM tbl_example"); while($row = mysql_fetch_object($select)) { echo $row->id; echo $row->name; } $Connection = new dbconnect(); $Connection->query('UPDATE tbl_example SET name = "neuerName" WHERE id = 5');
|
Kommentare
LG Jules
Poste bitte mehr Infos, dann kann ich sicher helfen.
Versuche zum Debuggen einfach mal den SQL String mit einem einfachen echo $sqlStr auszugeben, eventuell wird dann der Fehler ersichtlich.
http://blog.service2max.ch/sortierbare-liste-mit-drag-drop-in-ajax-tutorial/#more-36
Jetzt wollte ich das ganze mit deiner Klasse anwenden.
Das auslesen hat auch super funktioniert nur das UPDATE funktioniert eben nicht.
LG Jules
Ich kann zwar nicht ganz ableiten, was das Ziel sein soll. Aber anscheinen benutzt du parse_str um Variablen zu erstellen die per POST übermittelt wurden. Das ist gefährlich ...
Wenn, dann solltest du den zweiten Parameter von parse_str nutzen, dann werden die einzelnen Werte in ein Array geschrieben:
parse_str($str, $output);
echo $output['arr']; // foo bar
http://php.net/manual/de/function.parse-str.php
In der For schleife brauchst du nicht prüfen ob $i ein Integer ist, dass ist automatisch gegeben, da die For Schleife ja hochzählt.
Ich nehme mal an, dass das SQL Statement nicht funktioniert. Musst sonst die Fehlermeldung posten.
Versuche es mal so:
$ccount = count($navigati on);
for ($i = 0; $i -KLEINER- $ccount; $i++) {
query("UPDATE `cat` SET `sort_order` = '".$i."' WHERE `ID` = '".$navigation[$i] ."'");
}
Was mach ich hier falsch?
include("system/classes/mysql.class.php");
$db = new dbconnect();
parse_str($_POS T['data']);
for ($i = 0; $i < count($navigati on); $i++) {
if(is_int($i)) {
$db->query("UPDATE cat SET sort_order = $i WHERE ID = $navigation[$i] ");
}
else {
exit;
}
}
Wie verwende ich es bei einem Update?
So:
$Connection->query("UPDATE qp_cat SET sort_order = $i WHERE ID = Peter");