Variablen übergabe in einer while Schleife

Smeagel

Mitglied
Hallo zusammen,
Ich habe da wieder einmal ein Problem, und zwar:
Ich will einen Webshop schreiben. Dazu lese ich
aus einer MYSQL Datenbank die Artikel aus und stelle
sie mittels einer while Schleife auf dem Webbrowser dar.
Das funktioniert jetzt noch wunderbar.
Hier kann man jetzt einen Artikel auswählen, die bestellte Anzahl
eintragen und das ganze mit dem Submit Button abschicken.
Das Problem ist nun
In den Variablen die ich zum darstellen der Artikel benutze passt alles
nur in den hidden Feldern stehen in denselben Variablen
immer nur die Inhalte des lezten Artikels der Liste drin,
egal welchen ich mir auswähle.
hier mal der relevante Code:
PHP:
<?php
      echo "<form name='bestellung' method='post' action='korb1.php'>";
	while ($daten=mysql_fetch_array($result, MYSQL_ASSOC))
	    {
	    echo "<tr class='smalltxt'>
	    <td><a href='$verzeichnis/$daten[bild]' target=blank><img src ='$verzeichnis/$daten[bild]' width='50'></a></td>
	    <td width='25%'>$daten[text]</td>
	    <td>
		<table border ='0' width='90%'>
		<tr>
		<td>$daten[artnr]</td>
		<td>$daten[artbez]</td>
		</tr><tr>
		<td>$daten[epreis]</td>
		</tr><tr>
		<td><input type='text' name='anzahl' value='1' size='5'></td>
		<td>
		    <input type=hidden name=artnr value='$daten[artnr]'>
		    <input type=hidden name=artbez value='$daten[artbez]'>
		    <input type=hidden name=preis value='$daten[preis]'>
		    <input type=hidden name=anzahl value='$anzahl'>
		    <input type=hidden name=text value='$daten[text]'>
		    <input type='submit' name='gnob' value='Bestellen'>
		</td></tr></table></td>";	
	    echo "</tr>";
	    }
	    echo "</table><br><br><br>";
	    echo "</form>";
?>

Für jede Hilfe schon mal Danke schön im voraus ..-)

Gruß
Smeagel
 
Wo ist denn deine MySQL Abfrage? Zeig uns die doch mal bitte und setze das ncähste mal bitte PHP Code auch in die entsprechenden [ PHP ] [ /PHP] Tags (ohne Leerzeichen).
 
Jou, hier dann mal die Abfrage

$conn = @mysql_connect($server, $user, $pass);
@mysql_select_db ($DBNAME, $conn);
if ($conn!=TRUE)
{
echo "Verbindungsfehler: ".mysql_error()." !! Versuchen Sie es zu einem sp&auml;teren Zeitpunkt nochmal. Danke.";
die;
}
$query = "SELECT bild,artnr,artbez,epreis,text from artikel";
$result = mysql_query($query);
 
Kannst du mal noch die Ausgabe irgendwie Posten, ich kann da jetzt erstmal nichts auffäliges finden, evt. noch nen MySQL Dumb!
 
Ist doch klar, du musst die form-Tags mit in die Schleife nehmen, sonst wird z.B. $daten[artnr] von jedem nachfolgenden Artikel überschrieben.
 
Sorry, aber das ist falsch was du da sagst. Was hat das denn mit den Formular tags zu tun? gar nichts! Wenn doch, lass ich mich gerne eines besseren belehren.
 
Du musst die Variablennamen dynamisch erzeugen....denn nach jeder while Schleife wird deine FESTE Variable z.B. $artikel immer wieder überschrieben...

Also

z.B.
<?
while(){
?>
<input type="hidden" name="<? echo "artikel".$artikel_id;?>" value="<?echo $artikel_id;?>">
<?
}
?>

d.H. du hast für jeden Artikel eine eigene Variable, also artikel(irgendeineartikelid)
z.B. artikel17

dann machst du nach dem du form gesendet hast :

z.B.
$result=mysql_query("SELECT * FROM artikel");
while ($row=mysql_fetch_array($result)){


//hier gehst du dann die dynamischen Variablen durch, prüftst sie, ob sie
//leer sind wenn nicht, dann machst du inserts oder sonst irgendwas....
}
 
Es kann ja sein das ich gerade vollkommen auf dem Schlauch stehe, aber ich bin der Meinung es ist falsch was ihr sagt, wieso sollten die Variablen denn überschrieben werden?
 
Ganz einfach:
Wenn die ganze Seite ein Formular ist und jeder Datensatz so dargestellt wird wie in seinem ersten Posting, dann kann man in DS 3 eine $anzahl von 5 eingeben, das Formular abschicken und DS 4 wird daraus wieder 1 machen, ebenso aus der Artikelnr. 3 => 4 ...

Alternativ könnte er natürlich alle Anzahlfelder mehrdimensional machen und auf der Zielseite in einer foreach-Schleife abklappern:
PHP:
<input type='text' name='anzahl[id]' value='0' size='5'>
Nur dann wäre dringend davon abzuraten, dass value='1' drinsteht ;)

Was ich allerdings für vollkommen überflüssig halte ist das Mitschleifen von Preis, Texten usw. per hidden Field.
 
Hi German,
klasse .. ja natürlich das wars .. die form tags müßen in die Schleife .-))

Aber jetzt hab ich das Problem mit dem Feld .. Anzahl...
das bekomme ich jetzt nicht übergeben .-((

Wenn Du mir da nochmal helfen könntest .-)
 
Zurück