Form Mehtod Post , PostVariable dynamisch erstellen..

robertino

Mitglied
Hi zusammen

Ich habe eine while Schleife von einer Datenbank.
Die Variable $i wird bei jedem neuen Durchlauf um eins erhöht.
$i=$i++;

Jetzt habe ich in einer Form(HTML) mehrere EIngabe Felder die ich mit der Datenbank mittels UPDATE aktualisieren möchte. Ich weiss aber nicht wie ich eine Post Variable verändern kann

<input type="text" name="anz1">
<input type="text" name="anz2">
<input type="text" name="anz3">
<input type="text" name="anz4">

Durchlauf1:
$anz = $_POST['anz1'];
Durchlauf2:
$anz = $_POST['anz2'];
Durch...

Ich habe es so versucht aber ohne Erfolg:
$anz = $_POST['anz'][$i]; oder $anz = $_POST['anz'.$i];

mysql_query("UPDATE table SET Anz='$anz' WHERE Typ='$typ'");

Wie kann ich das realisieren, Bitte helfen?!
 
;)

Wenn ein Textfeld zum Beispiel <input type="text" name="anz1"> heisst. Dann kann ich das in PHP so ausgeben:

<?
echo $_POST['anz1'];
?>

---

Jetzt hat es aber mehrere Textfelder mit immer einer zahl aufsteigen auf einer Seite:

<input type="text" name="anz1">
<input type="text" name="anz2">
<input type="text" name="anz3">

Ich könnte das jetzt so ausgeben:

<?
echo $_POST['anz1'];
echo $_POST['anz2'];
echo $_POST['anz3'];
?>


Da aber keine bestimmte Anzahl vorgegeben ist, müssen alle Textfelder ausgegeben werden. Deshalb habe ich ein $i erstellt um in der Schlaufe jede Variable auszugeben aber DAS funtkioniert nicht!!

Weder so echo $_POST['anz'][$i]; noch so: echo $_POST['anz'.$i];


Hoffe das war jetzt verständlich, Gruss
 
Code:
$anz = $_POST['anz' . $i];
..sieht eigentlich gut aus und sollte gehen...zumindest hast du damit in $anz den Wert der entsprechenden $_POST-Variable gespeichert.
Vielleicht liegt der Fehler ja woanders...das kannst du per [phpf]mysql_error[/phpf] prüfen.

Wie hast du denn die Schleifenbedingung formuliert?
Und wie beendest du die Schleife?
 
:-) Daran kanns es nicht gelegen haben.... das hatte ich nur der Übersichtlichkeit halber so geschrieben.
Für PHP ist es dasselbe wie $anz = $_POST['anz'.$i];
 
Du solltest jedoch vor der Verarbeitung prüfen, ob die Variable überhaupt existiert:
PHP:
<?php

	$i = 1;
	while( isset($_POST['anz'.$i]) ) {
		$query = '
			UPDATE
			        `table`
			  SET
			        `Anz` = "'.mysql_real_escape_string($_POST['anz'.$i]).'"
			  WHERE
			        `Typ` = "'.mysql_real_escape_string($typ).'"
			';
		$result = mysql_query($query)
			or die(mysql_error()); // zur einfachen Fehlerdiagnose
		$i++;
	}

?>
 
Zurück