Veröffentlicht 20. Februar 200520 j Moin! Hab hier folgendes Problem.... Ich möchte das alle Datensätze aktualisiert werden wenn man was neues reinschreibt... jedoch wird immer nur der letzte Datensatz aktualisiert... wie kann man das machen das alle Datensätze aktualisiert werden? Hier ist mal der Code! Danke im Vorraus: <?php error_reporting(E_ALL); $db_server = "XXX"; $db_user = "XXX"; $db_passwort = "XX"; $db_name = "XXX"; @MYSQL_PCONNECT($db_server,$db_user,$db_passwort); $db_select = @MYSQL_SELECT_DB($db_name); if(isset($test) <> "") { mysql_query("UPDATE playlist SET test = '$test' WHERE id ='$id'"); } $result = mysql_query("SELECT * FROM playlist ORDER BY id ASC"); echo "<form method=post>"; while($row = mysql_fetch_array($result)) { echo " <table align=center border=1> <tr> <td width=30 align=center><input type=text name=id value=$row[id]></td> <td width=100 align=center><input type=text name=test value=$row[test]></td> </tr> </table> "; } echo "<center><input type=submit value=Eintragen> <input type=reset value=Löschen></form></center>"; ?> ps. hier nochmal der Link zum anschauen: http://www.ricorda.de/entwicklung/playlist/index1.php
20. Februar 200520 j Da die Seite wegen eines PHP Fehlers nicht funktioniert kann ich dein Problem nicht ganz nachvollziehen. Was heißt es sollen alle Datensätze aktualisiert werden. Du machst doch nur ein Update zu einer bestimmten ID. Frank
20. Februar 200520 j Hallo, du kannst das ganze mal mit "mysql_fetch_row" probieren, allerdings musst du dann wieder für jedes Datenfeld eine Variable vergeben. -------------------------------------------------------------- <?php error_reporting(E_ALL); $db_server = "XXX"; $db_user = "XXX"; $db_passwort = "XX"; $db_name = "XXX"; @MYSQL_PCONNECT($db_server,$db_user,$db_passwort); $db_select = @MYSQL_SELECT_DB($db_name); if(isset($test) <> "") { mysql_query("UPDATE playlist SET test = '$test' WHERE id ='$id'"); } $result = mysql_query("SELECT * FROM playlist ORDER BY id ASC"); echo "<form method=post>"; while(list ($id, $test) = mysql_fetch_row($result)) { echo " <table align=center border=1> <tr> <td width=30 align=center><input type=text name=id value=$id></td> <td width=100 align=center><input type=text name=test value=$test></td> </tr> </table> "; } echo "<center><input type=submit value=Eintragen> <input type=reset value=Löschen></form></center>"; ?> -------------------------------------------------------------- mfg shockbox
20. Februar 200520 j allerdings musst du dann wieder für jedes Datenfeld eine Variable vergeben. wie mienst du das? und an welcher stelle? mfg easy!
20. Februar 200520 j hallo nochmal, also du musst statt "while($row = mysql_fetch_array($result)) " einfach "while(list ($id, $test) = mysql_fetch_row($resulst))" schreiben und dabei nicht vergessen bei den Value-Feldern statt "value=$row[id]" folgendes schreiben "value=$id" shockbox
20. Februar 200520 j joa hab ich gemacht... nur er ändert nach wie vor immer nur den letzten datensatz: http://www.ricorda.de/entwicklung/playlist/index1.php ^^^hier kannst du dir das nochmal anschauen...
20. Februar 200520 j der Lösungsvorschlag galt eigentlich nur für die PHP-Fehlermeldung, aber ich weiß auch warum er immer nur den letzten Datensatz ändert. du speicherst alle Werte in die Variablen $id und $test durch die While-Schleife beinhalten die Variablen immer den letzten Wert, also $id beinhaltet die Datensatz-ID 2 d.h. dein Script kann immer nur den letzen Datensatz ändern weil du keine ID deines Datensatzes übergibst shockbox
21. Februar 200520 j wenn du alle datensätze in der Tabelle updaten willst musst du auch ein entsprechender SQL Statement absetzten: if(isset($test) <> "") { // mysql_query("UPDATE playlist SET test = '$test' WHERE id ='$id'"); // hier alle nicht nur den ausgewählten.... mysql_query("UPDATE playlist SET test = '$test'"); } [/PHP]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.