Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Mehrere Zeilen auf einmal speichern? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Mehrere Zeilen auf einmal speichern?


 
Tobias
02-04-2001, 12:57 
 
Hallo,
Ich stehe mal wieder vor einem Problem!
Folgendes: Ich gebe mittels while-Schleife(php) und select(mysql) mehrere Zeilen aus einer Datenbank in ein Formular aus.
Diese möchte ich nun verändern können und speicher. Und nun das Problem:
Bei mir wird immer nur die Änderung in der letzten Zeile gespeichert! Die Zeilen davor nicht!
Wie kann ich das ändern?
Gruß Tobias

 
Berni
02-04-2001, 14:29 
 
zeig mal deinen Code!

 
Tobias
02-04-2001, 15:11 
 
Tja, den Code habe ich leider nicht bei mir,
aber sinngemäß lautet er ungefähr so:

Aufruf:

form action...

mysql_connect (localhost, root, root);
mysql_select_db (DB);

$result = mysql_query ("SELECT * FROM a order by id asc");

while($row = mysql_fetch_array($result))
{
Table...
echo"<input type=text ... $row[id]";
echo"<input type=text ... $row[c]";
echo"<input type=text ... $row[d]";
echo"<input type=text ... $row[e]";
echo"<input type=text ... $row[f]";
usw.

}
}
?>
</form >

Ausgegeben werden immer 9 Zeilen
die ich dann alle zusammen nach Veränderung abspeichern möchte.

Speichern :

dasselbe wie oben, nur
$result = mysql_query ("Replace into a (id,c,d,f) value ($id,$c,$d,...)");

oder so ähnlich, sorry besser gehts nicht aus dem Kopf!

Gruß Tobias

 
Titus
02-04-2001, 17:49 
 
Interessant wäre zu wissen welche Namen du deinen Input-Tags gibst. Wenn du - wie ich vermute - die Felder in jeder Zeile gleich nennst, ist es kein Wunder, daß du immer nur die letzte Zeile übergeben bekommst.
Du mußt also (da sich mehrdimensionale Arrays leider nicht übergeben lassen) für jede Zeile ein eigenes Array erzeugen:


for ($i=0; $row = mysql_fetch_array($result); $i++) {
Table...
echo '<input type="text" name="row'.$i.'[id]" value="'.$row[id].'">';
...
}
// damit das Folgeskript weiß, wieviele Arrays es sind:
echo '<input type="hidden" name="rowcount" value="'.$i.'">';



im Folgeskript kannst du dann mit

for ($i=0; $i<$rowcount; $i++) {
$row = ${'row'.$i};
...
}


die einzelnen Zeilen speichern.


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:04 Uhr.