richtige id in Formularfeld

headloose

Grünschnabel
Hallo,

ich lese aus einer Dtaenbank verschiedene Artikel aus.

Ich möchte nun pro Artikel die Menge ändern. Dies geschieht durch ein Formulafeld.

Allerdings ändert ermir nur den letzten Datensatz. Wie kann ich die richtige id zuweisen für die Änderung.

Hier mal ein bisschen code:

Code:
// aus Datenbank lesen

$result = mysql_query("SELECT wkid, sid,artikelbeschreibung, preis,menge FROM warenkorb WHERE sid = '$sid'"); 
echo mysql_error();

// Tabellenbeginn
echo "<table width=450 border=0 cellpadding=0 cellspacing=0>";
							 while ($row = mysql_fetch_assoc($result))
 {
  usw.

//jetzt in Menge in Formularfeld schreiben
 echo "<td width=200 valign=middle align=left>Menge:  "?>
<input type="hidden" name="wkid" value="<?php echo $wkid ?>">
<input name="menge" type="text" id="menge" value="<?php echo $menge; ?>" size="3"><?php echo $wkid ; ?>
<input class="buttom" name="submit" type="submit" id="submit" value="&auml;ndern"><?php echo "<hr>"; ?>
<?php echo "<td width=230 valign=top align=right><strong>Preis: </strong>  $GArtikelPreis Euro<br><br><hr></td>";
 echo "</tr>";
}

...
 
Hi,
wie sieht denn das Update-Statement aus, mit dem Du das beschriebene Verhalten bekommst.
Der kritische Punkt scheint zu sein, dass Du die richtige wkid ausliest. So sieht es aus, als ob Du in einem Formular für jede Zeile eine hidden-Variable für wkid anlegst. Anscheinend wird die letzte - und damit der letzte Datensatz - akzeptiert (gib mal die $_POST oder $_GET-Daten aus, z.b. mit serialize).

Besser wäre es, wenn Du die Hiddenvariablen durchnummerierst, und - habs nicht probiert, aber das müßte gehen - schaust, welcher Submit-Button gedrückt wurde, indem Du auch die Variablennamen ebenfalls nummerierst (Variable $counter musst Du in der while-Schleife hochzählen, vorher natürlich initialisieren):
Code:
<input type="hidden" name="wkid<?php echo $counter ?>" value="<?php echo $wkid ?>">
<input name="menge" type="text" id="menge" value="<?php echo $menge; ?>" size="3"><?php echo $wkid ; ?>
<input class="buttom" name="submit<?php echo $counter ?>" type="submit" id="submit" value="&auml;ndern"><?php echo "<hr>"; ?>

Ist zwar eher ein PHP, als ein Datenbankproblem, das macht aber nix

Grüße
Oliver
 
Zurück