Fehler mit Funktion: Query gibt falsche Daten aus.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anwendung
bauen
beitrag
break
checken
error
fehler
folgende funktion
gel
kaserne
kopfzerbrechen
manual
right
schmieden
set
springbrunnen
syntax
tabelle
update
variable
-
Nun denn, zu sp?ter Stunde erscuhe ich euren Rat.
Die folgende Funktion arbeitet nicht ganz, wie sie soll. Ein bestimmtes update bereitet mir Kopfzerbrechen. Unzwar ist in der Variable $ans aus unbestimmten Gr?nden nur ResourceID #5 gespeichert. Allerdings sollte (in diesem Fall) eine 0 enthalten sein.
Dadurch gibt das letzte Update einen Fehler aus und bricht das Skript ab. Nunja, ist klar, das ich soetwas nicht m?chte, oder? ;)
Nundenn, hier der Code:
function is_built($dorfid) { if(isset($dorfid)) { $isquery_1 = mysql_query("SELECT * FROM is_build WHERE dorfid = '" . $dorfid . "'") OR die("isquery" . mysql_error()); $isquery = mysql_fetch_array($isquery_1) OR die("Kann String nicht durchz?hlen. Leerer String?"); $time = time(); if($isquery['ende'] <= $time) { $fertig = 1; #Bauauftrag aus der Liste l?schen; $delete = mysql_query("DELETE FROM is_build WHERE dorfid = '" . $dorfid . "'") OR die("Delete" . mysql_error()); # #Updaten der relevanten Tabellen/Spalten # $bau = $isquery['bauid']; switch ($bau) { case 1: $tobuild = "schmiede"; break; case 2: $tobuild = "huette"; break; case 3: $tobuild = "kaserne"; break; case 4: $tobuild = "alchimistenturm"; break; case 5: $tobuild = "badehaus"; break; case 6: $tobuild = "springbrunnen"; break; default: die("Der angegebene Wert ist nicht verf?gbar! Script wird abgebrochen"); break; } $ans1 = mysql_query("SELECT '" .$tobuild. "' FROM doerfer WHERE id = '" . $dorfid . "'") Or die("ans" . mysql_error()); $ans++; $update = mysql_query("UPDATE ?doerfer? Set '" . $tobuild . "' = '" . $ans . "' WHERE ?id? = '" . $dorfid . "'") OR die("update" . mysql_error()); #Fertig den an die Anwendung ?bergeben. (Wert true) return $fertig; } Else { echo "Sie m?ssen noch " . $ende - $time . " Sekunden warten, bis der Bau fertig gestellt wird!"; $fertig = 0; #Fertig den an die Anwendung ?bergeben. (Wert false) return $fertig; } } Else { echo "FATAL_ERROR:Die Variable 'dorfid' wurde nicht gesetzt!"; } #Ende der Funktion }
?brigens: ich w?re euch sehr verbunden, wenn ihr nicht na meienr Technik herumm?keln w?rdet. Ich wei? selber, das das hier h?chst wahrscheinlich sehr umst?ndlich gel?st ist, aber es arbeiet. zumindest gr??tenteils.
Die Ausgegebene Fehlermeldung ist ?brigens:
PHP-Parser schreib:
updateYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?doerfer? Set 'schmiede' = 'schmiedf' WHERE ?id? = '13'' at
Danke im Voraus.
PS: Ich hoffe, das auch zu solchen Zeiten noch flei?ige Programmierer wachen und schreiben.
Beitrag ge?ndert am 25.03.2006 23:08 von warlord -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also, dieser Query:
$update = mysql_query("UPDATE ?doerfer? Set '" . $tobuild . "' = '" . $ans . "' WHERE ?id? = '" . $dorfid . "'") OR die("update" . mysql_error());
erzeugt also den Fehler:
PHP-Parser schreib:
updateYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?doerfer? Set 'schmiede' = 'schmiedf' WHERE ?id? = '13'' at
Bin mir jetzt nicht sicher aber ich glaube dass MySQL ein Problem damit hat, dass du eine Tabelle (schmiede) in >'< anstatt >`< bzw. bei dir >?< setzt. Deswegen hier mein L?sungsvorschlag (einfach die >'< bei der Tabelle schmiede durch >?< ersetzt):
$update = mysql_query("UPDATE ?doerfer? Set ?" . $tobuild . "? = '" . $ans . "' WHERE ?id? = '" . $dorfid . "'") OR die("update" . mysql_error());
Beitrag ge?ndert am 26.03.2006 11:28 von svn -
Hmmm. Nach einigem hin under her hat es sich erledigt!
Dein Tipp hat ?brigens auch was bewirkt! :P
danke! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage