Hallo an alle,
ich möchte die Einträge einer MySQL-Tabelle als Formular mit Radio-Buttons ausgeben. Bei einem Klick auf einen Radio-Button soll dann der Primärschlüssel aus der Tabelle an eine Datei zum Auswerten bzw. weiterverarbeiten geschickt werden. So sieht der relevante Code aus:
<form method="post" action="warenkorb.php">
<?php
/*
Die beiden Abfragen $sql_essen und $sql_wein
fragen alle Eintraege aus den Tabellen Gerichte und Wein ab und ordnen diese nach Produktgruppen. Um
das Bestellen der einzelnen Positionen zu ermoeglichen, werden die Eintraege der Tabellen als Radiobuttons
ausgegeben. Wenn man eine Position waehlt und auf "Bestellen klickt, wird ein entsprechender Eintrag in der
Tabelle "Bestellte_Gerichte" bzw. "Bestellte_Weine" erzeugt. Die dazu benoetigte Reservierungs-ID muss an
diese Datei per Session uebergeben werden.
Im Folgenden: Abfrage der Gerichte aus der Tabelle Essen, Ausgabe als Formular mit Radio-Buttons in einer
Tabelle
*/
$sql_essen = 'SELECT `Gerichte`.`GID`,`Gerichte`.`Bezeichnung`,`Gerichte`.`Preis`,`ProdGR`.`Art`'
. ' FROM Gerichte, ProdGR'
. ' WHERE `Gerichte`.`ProdGR`=`ProdGR`.`ProdGr` ORDER BY `ProdGR`.`ProdGR` ';
echo "<h3>Speisekarte</h3>";
echo "<table>";
echo "<tr class=\"bestellung\"><td></td><td>Bezeichnung</td><td>Preis</td><td>Warengruppe</td></tr>";
$abfrage = mysql_query($sql_essen) or die ("Fehler: " .mysql_error());
while ($ergebnis = mysql_fetch_array($abfrage))
{
echo "<tr><td><input type=radio name=gerichte value=" .$ergebnis['GID'] ." /></td><td>"
.$ergebnis['Bezeichnung'] ."</td><td>"
.$ergebnis['Preis'] ."</td><td>"
.$ergebnis['Art'] ."</td></tr>";
}
echo "</table>";
/*
Im Folgenden: Abfrage der Wein aus der Tabelle Wein, Ausgabe als Formular mit Radio-Buttons in einer
Tabelle
*/
$sql_wein = 'SELECT `Wein` . `WID` , `Wein` . `Bezeichnung` , `Wein` . `Jahrgang` , `Wein` . `Preis` , `ProdGR` . `Art` '
. ' FROM Wein , ProdGR '
. ' WHERE `Wein` . `ProdGR` = `ProdGR` . `ProdGR` '
. ' ORDER BY `ProdGR` . `Art` ';
echo "<h3>Weinkarte</h3>";
echo "<table>";
echo "<tr class=\"bestellung\"><td></td><td>Bezeichnung</td><td>Preis</td><td>Warengruppe</td><td>Jahrgang</td></tr>";
$abfrage = mysql_query($sql_wein) or die ("Fehler: " .mysql_error());
while ($ergebnis = mysql_fetch_array($abfrage))
{
echo "<tr><td><input type=radio name=gerichte value=" .$ergebnis['WID'] ." /></td><td>"
.$ergebnis['Bezeichnung'] ."</td><td>"
.$ergebnis['Preis'] ."</td><td>"
.$ergebnis['Art'] ."</td><td>"
.$ergebnis['Jahrgang'] ."</td></tr>";
}
echo "</table>";
?>
<p>
<input type="submit" value="Bestellen">
<input type="reset" value="Neu wählen">
</p>
</form>
Alles anzeigen
Wenn ich nun auf den "Bestellen"-Button klicke öffnet sich die Datei warenkorb.php, nur wird der gewünschte Wert ($ergebnis['GID'] bzw. $ergebnis['WID'] nicht übertragen.
Leider weiss ich nicht mehr weiter und finde den Fehler leider auch nicht. Ich hoffe, mir kann jemand hier helfen. Viele Grüße aus Hannover,
Jan
EDIT: Habe mein Problem gerade selbst gelöst. Der Code stimmt, habe aber einen Fehler in der warenkorb.php gefunden, der die Übertragung verhindert hat.