Veröffentlicht 1. Juli 200421 j Hi, ich hab grad mal wieder ein Problem, dass mich nicht voran bringt. und zwar: ich in der tabelle todo ist ein feld "status", der standardmäßig mit "---" belegt ist. nun möchte ich beim Klick auf einem Button "erledigt" ein UPDATE durchführen. die Abfrage ist wie folgt: if($erledigt) { $sql3=mysql_query("UPDATE todo SET status='erledigt' WHERE status=".$_GET['erledigt']); if($sql3){ echo " | <b>Erfolg</b>"; } else { echo " | <b>Fehler</b>"; } }[/PHP] Zwar wird beim Klick auf den Button "Erfolg" ausgegeben, allerdings wird kein Update in der Tabelle durchgeführt. Weiß jemand vielleicht, woran das liegt bzw. was ich falsch mache? Danke, Marcus
1. Juli 200421 j Hallo, hat der Datenbankuser das Updaterecht? Ist die Spalte status lang genug um das Wort erledigt aufzunehmen? Frank
1. Juli 200421 j Hallo, hat der Datenbankuser das Updaterecht? Ist die Spalte status lang genug um das Wort erledigt aufzunehmen? Frank Hi Frank, meines Wissens nach hat der User das Updaterecht. Andernfalls gäbe es eine Fehlermeldung, oder? Die Spalte "status" is varchar(255). Also das sollte nicht das Problem sein... Vielleicht mache ich auch was falsch jedenfalls versuche ich das feld status über task_id upzudaten. oder vielleicht UPDATE todo SET status='erledigt' WHERE status=".$_GET['task_id'] -> task_id wird als wert über die URL (...php?erledigt=1) übermittelt. Allerdings funzt das auch nicht Marcus
1. Juli 200421 j Musst Du das nicht noch mit commit; bestätigen? Bei Oracle ist das so, erst dann wird es in der Tabelle festgeschrieben.
1. Juli 200421 j Musst Du das nicht noch mit commit; bestätigen? Bei Oracle ist das so, erst dann wird es in der Tabelle festgeschrieben. Nicht bei MySQL. Frank
1. Juli 200421 j Bau doch mal folgendes in die Seite ein. echo "UPDATE todo SET status='erledigt' WHERE status=".$_GET['erledigt']; [/php] Und den SQL Code den er Dir dann ausgibt, gibst Du direkt bei MySQL ein. Entweder über die Kommandozeile oder über phpMyAdmin oder oder oder. Vielleicht sieht man dann etwas mehr. Frank
1. Juli 200421 j Hi, in der tabelle todo ist ein feld "status", der standardmäßig mit "---" belegt ist. [...] "UPDATE todo SET status='erledigt' WHERE status=".$_GET['erledigt'] [...] URL (...php?erledigt=1) übermittelt. Wenn status mit "---" belegt ist findet die Abfrage "WHERE status = 1" keinen Datensatz der upgedated werden kann. Wenn du in deiner Tabelle ein Feld ID hast solltest du das nutzen um den Satz zu bestimmen. Oder halt was anderes eindeutiges.
1. Juli 200421 j Wenn status mit "---" belegt ist findet die Abfrage "WHERE status = 1" keinen Datensatz der upgedated werden kann. Stimmt. Das hatte ich gar nicht gesehen. Frank
2. Juli 200421 j hm, ich hab jetzt ma $sql3=mysql_query("UPDATE todo SET status=2 WHERE status=1 AND task_id=$task_id"); als Statement geschrieben. Es scheint zu funtzen. Allerdings hab ich jetzt ein anderes Problem. Beim Klick auf das Icon, das das Update durchführt, wird die Änderung nicht angezeigt. Bei einem Reload der Seite, ist die Änderung dann sichtbar. Wie kann ich das ändern? Gruß, Marcus
2. Juli 200421 j Ich nehme mal an, dass Du erst die Ausgabe machst und danach das Update. Entweder Du drehst das um oder Du machst nach dem Update ein meta refresh. Frank
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.