URL: https://www.overclockers.at/coding-stuff/php_mysql_formular_als_array_uebergeben_86974/page_2 - zur Vollversion wechseln!
hast es auch bei den diversen anderen stellen wo des $ fehlt ausgebessert?Zitat von grOOvekill@Ach, du Sch*****! Okay, hab's ausgebessert, aber so funzt es leider auch nicht. Jedesmal wenn ich auf Speichern klicke, erscheint wieder der ursprüngliche Text an der Stelle. Aber danke trotzdem!
(btw: is ein ofter fehler, ich hab mal stundenlang gesucht, warum eine objekteigenschaft nicht übernommen wird, bis ich endlich bemerkt hab, dass das "$this->" davor fehlt... hmpf...Zitat von watchoutbtw: is es nicht sinnvoller pro zeile einen submit-button zu machen, der als value die id übergibt?
den dass es funkt... oder verwendest du ein javascript?Zitat von grOOvekill@Ich hab's ursprünglich mit einem Submit Button gemacht, hat aber auch nicht funktioniert. Welchen Vorteil hätte ein Submit Button gegenüber einem Link?
müsste funkenCode: PHP<body> <?php $db = mysql_connect("xxx","xxx","xxx"); mysql_select_db("xxx",$db); if ($_POST['speichern']) { foreach ($_POST['submit'] as $n => $dummy) { mysql_query("UPDATE table SET text='".$_POST[text][$n]."', data='".$_POST[data][$n]."' WHERE id='".$_POST[id][$n]."'"); } echo "<b><center>Änderungen in Datenbank gespeichert!</center></b>"; } ?> <table border=1 cellpadding=3 cellspacing=0 align=center bordercolor="#e0e0e0"> <tr> <Th>id</a></th> <Th>text</a></th> <Th>pfad</a></th> </tr> <form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>"> <input type="hidden" name="speichern" value="1"> <?php $result = mysql_query("SELECT * FROM table",$db); while ($zeile=mysql_fetch_array ($result)) { echo (" <input type=\"hidden\" name=\"id\" value=\"$zeile[id]\"> <tr> <td><center>$zeile[id]</center></td> <td><textarea name=\"text[]\" cols=50 rows=10>$zeile[text]</textarea></td> <td><input type=\"Text\" name=\"pfad\" size=\"50\" value=\"$zeile[pfad]\"></td> </tr> <tr> <td colspan=\"3\" align=\"center\"><input type=\"submit\" name=submit[] /></td> </tr>"); } ?> </table> </form> </body>

Wow, funktioniert tatsächlich! Nur tut es genau das selbe wie mein Skript.
Sprich, Änderungen werden nicht akzeptiert. Nach einem Klick auf den Submit Button steht wieder der alte Text dort. Kann es sein, daß ich in der mysql DB irgendwas einstellen muß, was sich eben auf dieses update-statement auswirkt?
btw: Javascript verwende ich nicht, ist auch nicht geplant.
gäbs die möglichkeit, dass du mir nen dump von der tabelle raufladst, dann kann ich des gleich testen und dir sagen worans liegt, aber so is das doch etwas schwer... (ich könnt dir jetzt ansagen, wie man normal troubleshooting macht, aber das is echt mühsam...)
hf<body>
<?php
$db = mysql_connect("localhost","root","");
mysql_select_db("test",$db);
if ($_POST['speichern'])
{
foreach ($_POST['submt'] as $n => $dummy)
{
mysql_query("UPDATE tabele SET text='".$_POST[text][$n]."', pfad='".$_POST[pfad][$n]."' WHERE id='".$n."'");
}
echo "<b><center>Änderungen in Datenbank gespeichert!</center></b>";
}
?>
<table border=1 cellpadding=3 cellspacing=0 align=center bordercolor="#e0e0e0">
<tr>
<Th>id</a></th>
<Th>text</a></th>
<Th>pfad</a></th>
</tr>
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="speichern" value="1">
<?php
$result = mysql_query("SELECT * FROM tabele",$db);
while ($zeile=mysql_fetch_array ($result))
{
echo ("
<tr>
<td>
<center>$zeile[id]</center>
</td>
<td>
<textarea name=\"text[".$zeile['id']."]\" cols=50 rows=10>$zeile[text]</textarea>
</td>
<td><input type=\"Text\" name=\"pfad[".$zeile['id']."]\" size=\"50\" value=\"$zeile[pfad]\"></td>
</tr>
<tr>
<td colspan=\"3\" align=\"center\">
<input type=\"submit\" name=\"submt[".$zeile['id']."]\" value=\"Speichern\" />
</td>
</tr>");
}
?>
</table>
</form>
</body>
Edit: achtung: bei mir heisst die table jetz tabele (mein) mysql hat table nicht so gemocht 
Mann, vielen Dank! Das Ding funktioniert. Ich hab zwar keine Ahnung, was da genau passiert (sind mir ein paar Sonderzeichen zuviel
), aber hauptsache es geht. Hätte mir echt nicht gedacht, daß das so ausartet. Danke nochmal an alle, die geholfen haben.
naja, das is eigentlich eh ganz simpel, es geht nur darum dass versucht werden muss alle daten ins post-array zu packen...
das problem dabei is, dass ja immer nur ein submit-button gedrückt werden kann, dadurch hätte das sbmit-array nur ein element
dem submit-button kann man in den value aber leider keine id reinschreiben, da der value das is was auch angezeigt wird
also, muss ich die id händisch reinschreiben, da hab ich aber gleich die aus der db genommen, erspart man sich ein hidden field
die foreach-schleife hab ich einfach nur deswegen genommen, weil sie schön selbständig nach dem einzigen vorhandenen key sucht...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026