Warenkorb

Thorsten

Erfahrenes Mitglied
Tach,

könnte mir mir mal einer beim erstellen eines Warenkorbes helfen? Hab' auch schon im Forum etwas
unter Suchen nachgelesen, doch hab' nischt verstanden! Seit 2 Tagen quäle ich mich rum und komme keinen
Schritt weiter.
In Datei: warenkorb.php setze ich Variable $anzahl auf den Wert 1. Somit wird die id des Artikels mit den
Wert 1 in die Tabelle warenkorb gesendet.
In Datei: warenkorb1.php wird der bestellte Artikel auf Wert 1 ausgelesen. Bis jetzt alles korrekt, doch
wenn ich nun im Eingabefeld den Wert 1 ($anzahl) auf 5 setze, dann wird immer der alte wert nach Datei:
warenkorb2.php geschickt. Tja, was muss ich den nun machen, um den Warenkorb zu aktualisieren?
Entweder in warenkorb1.php oder warenkorb2.php!? Probierte auch schon die UPDATE-Anweisung, doch nix zu machen...
Session_id wird später noch eingebaut.

Bedanke mich wie immer schon mal für jede Hilfe...

Hier meine Codes:

Datei: warenkorb.php

<?php

include ("tb_open.php");
$anzahl = 1;
$anfrage2 = "SELECT * FROM artikel WHERE id=".$id;
$result = mysql_query($anfrage2);
if($result)
{
$sql = "INSERT INTO warenkorb (id,anzahl) VALUES ('$id','$anzahl')";
mysql_query($sql);

include("warenkorb1.php");
}

?>

Datei: warenkorb1.php

<html>
<head>
<title>Warenkorb</title>
</head>
<body>
<form method="post" action="warenkorb2.php">
<?php
include ("tb_open.php");

$anfrage = "SELECT * FROM artikel WHERE id = ".$id;
$anfrage2 = "SELECT id,anzahl FROM warenkorb WHERE id = '".$id."'";

$result = mysql_query($anfrage);
echo "<table border='0' cellpadding='0' align='center'>";
echo "<tr>";
echo "<td><div class='d_titel'><b>Warenkorb</td>";
echo "</tr>";
echo "</table><br>";

if($result)
{
echo "<table width='400' border='1' cellpadding='0' align='center'>";
while($row = mysql_fetch_row($result))
{
echo "<tr>";
echo "<td width='150'><b>Artikel:</b> ".$row[1]."</td>";
echo "<td width='150'><b>Preis:</b> ".$row[4]." €</td>";
echo "<td width='100'><input type='text' size='3' value='".$anzahl."'></td>";
echo "</tr>";
}
echo "</table>";
}

?>

<br><br><br><br>
<div align="center">
<input type="submit" class="back" name="send" value="Bestellen">
<input type="button" class="back" name="back" value="zurück" onClick="history.back()">
<input type="hidden" name="id" value="<? echo $id ?>">
<input type="hidden" name="anzahl" value="<? echo $anzahl ?>">
</form>
</div>
</body>
</html>


Datei: warenkorb2.php

<?php
include ("tb_open.php");

$anfrage2 = "SELECT id FROM warenkorb WHERE id = '".$id."'";
$result2 = mysql_query($anfrage2);
echo $id."<br>";
echo $anzahl."<br>";

?>
 
Hallo Thorsten,

dein Fehler liegt auf der Hand :p

Schau dir mal folgendes an:

<input type="submit" class="back" name="send" value="Bestellen">
<input type="button" class="back" name="back" value="zurück" onClick="history.back()">
<input type="hidden" name="id" value="<? echo $id ?>">
<input type="hidden" name="anzahl" value="<? echo $anzahl ?>">


Und jetzt deine Eingabe:

echo "<td width='150'><b>Artikel:</b> ".$row[1]."</td>";
echo "<td width='150'><b>Preis:</b> ".$row[4]." €</td>";
<echo "<td width='100'><input type='text' size='3' value='".$anzahl."'></td>";

Ich habe dir deinen Fehler rot markiert.

Erklärung:
Du hast zweimal versucht das Feld Anzahl zu befüllen. Einmal als Hidden mit der aktuellen Anzahl und einmal als INPUT Feld zum ändern. In diesem Feld hast du vergessen den Namen anzugeben.

Ich würde an deiner Stelle beide Felder übergeben und unterschiedliche Namen geben. Somit hast du die Möglichkeit nochmals mit beiden Werten zu arbeiten.

Gruß
Fati
 
Zurück