Warenkorb editieren - Session ID
Hallo und guten Tag, ich habe ein kleines Problem mit meinem Warenkorb. Geht um ein Projekt in der Schule und ich muss dort eine Art Warenkorb erstellen und den dann editieren. Also es soll die Menge der Speisen erhöht, verkleinert oder die Speise ganz aus der Tabelle gelöscht werden. Das Problem ist, wenn ich auf den Button klicke, wird die Tabelle komplett gelöscht... Anscheinend gibt es da ein Problem mit der Session ID. Muss ich vielleicht die Arrays beim Versenden mit übergeben? Wenn ja, wie? Ich kopier mal den Quelltext rein:
<?php
// Sessions einschalten
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transistional//EN">
<html>
<head>
<title>Warenkorb</title>
</head>
<body>
<h3>Der Warenkorb</h3><br>
<?php
// Eingabe aus Angebote holen
$gewuenschteSpeisen = $_POST["gewuenschteSpeisen"];
// Daten aus Sessiondaten holen
$sessionDaten = $_SESSION["daten"];
// Eingabe an das Array mit Daten anhängen
$sessionDaten = $gewuenschteSpeisen;
// Daten in Sessiondaten speichern
$_SESSION["daten"] = $sessionDaten;
// Öffnen der Datenbankverbindung
include( "zugriff.inc.php");
$db = @mysql_connect("$hostname", "$user", "$pass")
or die ("Keine Verbindung zur Datenbank");
// Auswahl der Datenbank
@mysql_select_db($datenbank, $db)
or die ("Keine Datenbank `$datenbank`");
// Tabelle speisen auslesen
$speisen = "SELECT * FROM speisen";
$result = mysql_query($speisen);
$angebot[] = array();
$i = 0;
while($row = mysql_fetch_assoc($result)) {
$id = $row["id"];
$name = $row["name"];
$preis = $row["preis"];
$typ = $row["typ"];
$angebot[$i] = array ( $id => array ( $name => $preis ));
$i++;
}
// Schliessen der Datenbankverbindung
mysql_close($db);
echo("<br><h2>Warenkorb</h2><table border>");
echo("<tr> <td> <h5> Menge </h5> </td>
<td> <h5> Speise </h5> </td>
<td> <h5> Preis </h5> </td>
</tr>");
$menge = array();
for ($i = 0; $i < count ($sessionDaten); $i++) {
$menge[$i] = 1.0;
}
echo("<form action='warenkorb.php'>
<input type='hidden' name='sent' value='yes'>");
for($i = 0; $i < count ($sessionDaten); $i++) {
foreach($angebot[$sessionDaten[$i]] as $id => $array) {
foreach($array as $name => $preis) {
$gesamtPreis = $preis * $menge[$i];
echo("<tr> <td> $menge[$i] </td>
<td> $name </td>
<td> $gesamtPreis </td>
<td> <input type='submit' name=$i value='+'/>
<input type='submit' name=$i value='-'/>
<input type='submit' name=$i value='x'/>
</td>
</tr>");
}
}
}
echo("</form>");
$sent = $_GET['sent'];
$plus = $_GET['+'];
$minus = $_GET['-'];
$delete = $_GET['x'];
$arrayPlatz = $_GET['$i'];
if ( $sent == 'yes') {
if ( ($_REQUEST['submit']) == $plus)
$menge[$arrayPlatz] += 1.0;
else if ( ($_REQUEST['submit']) == $minus)
$menge[$arrayPlatz] -= 1.0;
else if ( ($_REQUEST['submit']) == $delete)
unset ($sessionDaten[$arrayPlatz]);
}
?>
</body>
</html>
|