mischma
17.12.2006, 02:08:06
Hallo Gemeinde,
über einen Link auf artikel.php gelangt man über das includierte authentifizierung.php zum warenkorb.php , wo die ausgewählten Artikel des aktuellen Kunden angezeigt werden sollen.
Leider erhalte ich nachfolgende Fehlermeldung Duplicate entry '0' for key 1 beim Aufruf von warenkorb.php.
Liegt der Fehler vielleicht bei der Übergabe des aktuellen Kunden an die Session mit $_SESSION['nummer']=$row['nummer']; ?
Ich weiß leider nicht weiter und bitte um Hilfe :-)
authentifizierung.php
<?php
// session_start muß vor einer Ausgabe aufgerufen werden!
session_start();
if (isset($kennung))
{
$sql = "SELECT *
FROM kunden
WHERE kennung = '$kennung'
AND passwort = '$passwort'";
$result = mysql_query($sql) or die(mysql_error());
// Falls keine Ergebniszeile vorliegt, sind die Daten nicht korrekt
if (!($row = mysql_fetch_row($result)))
{
// Weiterleitung zum Anmeldeformular + Fehlermeldung
header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?meldung=Login inkorrekt");
}
else
{
// Falls Daten korrekt, Wert in Session speichern
$_SESSION['angemeldet']="ja";
$_SESSION['nummer']=$row['nummer'];
}
}
else if($_SESSION['angemeldet']!="ja")
{
// Weiterleitung zum Anmeldeformular
header("Location: http://".$_SERVER['HTTP_HOST']."/index.php");
}
?>
warenkorb.php
<?php
include("dbconnect.php");
include("authentifizierung.php");
// nicht gewünschte Artikel aus warenkorb löschen
if (isset($loeschen))
{
$sql = "DELETE
FROM warenkorb
WHERE kundennummer = '".$_SESSION['nummer']."'
AND artikelid = $loeschen";
mysql_query($sql) or die(mysql_error());
}
// die gewählten Artikel in den warenkorb schreiben
if (isset($id))
{
$sql = "INSERT INTO
warenkorb (artikelid, kundennummer)
VALUES ($id, '".$_SESSION['nummer']."')";
mysql_query($sql) or die(mysql_error());
}
// Artikel zum Anzeigen holen
$sql = "SELECT name, preis
FROM artikel, warenkorb
WHERE artikel.id =warenkorb.artikelid
AND warenkorb.kundennummer = '".$_SESSION['nummer']."'";
$result = mysql_query($sql) or die(mysql_error());
?>
<html>
<head><title>Warenkorb</title></head>
<body>
<h1>Warenkorb</h1>
Folgende Artikel befinden sich im Warenkorb:<p>
<table cellspacing="2" cellpadding="4" border="0">
<tr bgcolor="Yellow">
<th>Artikel</th><th>Preis</th>
</tr>
<?php
while ($row = mysql_fetch_assoc($result))
{
print "<tr bgcolor='Silver'>";
print "<td>".$row['name']."</td><td>".$row['preis']." EUR</td>";
print "<td><a href='warenkorb.php?löschen=".$row['artikelid']."'>"."Artikel löschen</a></td>";
print "</tr>";
}
?>
</table>
<p>
<a href="artikel.php">Zurück zur Artikelseite</a>
<p>
<a href="bestellung.php">Zur Bestellung</a>
</body>
</html>
Vielen Dank
Mike
über einen Link auf artikel.php gelangt man über das includierte authentifizierung.php zum warenkorb.php , wo die ausgewählten Artikel des aktuellen Kunden angezeigt werden sollen.
Leider erhalte ich nachfolgende Fehlermeldung Duplicate entry '0' for key 1 beim Aufruf von warenkorb.php.
Liegt der Fehler vielleicht bei der Übergabe des aktuellen Kunden an die Session mit $_SESSION['nummer']=$row['nummer']; ?
Ich weiß leider nicht weiter und bitte um Hilfe :-)
authentifizierung.php
<?php
// session_start muß vor einer Ausgabe aufgerufen werden!
session_start();
if (isset($kennung))
{
$sql = "SELECT *
FROM kunden
WHERE kennung = '$kennung'
AND passwort = '$passwort'";
$result = mysql_query($sql) or die(mysql_error());
// Falls keine Ergebniszeile vorliegt, sind die Daten nicht korrekt
if (!($row = mysql_fetch_row($result)))
{
// Weiterleitung zum Anmeldeformular + Fehlermeldung
header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?meldung=Login inkorrekt");
}
else
{
// Falls Daten korrekt, Wert in Session speichern
$_SESSION['angemeldet']="ja";
$_SESSION['nummer']=$row['nummer'];
}
}
else if($_SESSION['angemeldet']!="ja")
{
// Weiterleitung zum Anmeldeformular
header("Location: http://".$_SERVER['HTTP_HOST']."/index.php");
}
?>
warenkorb.php
<?php
include("dbconnect.php");
include("authentifizierung.php");
// nicht gewünschte Artikel aus warenkorb löschen
if (isset($loeschen))
{
$sql = "DELETE
FROM warenkorb
WHERE kundennummer = '".$_SESSION['nummer']."'
AND artikelid = $loeschen";
mysql_query($sql) or die(mysql_error());
}
// die gewählten Artikel in den warenkorb schreiben
if (isset($id))
{
$sql = "INSERT INTO
warenkorb (artikelid, kundennummer)
VALUES ($id, '".$_SESSION['nummer']."')";
mysql_query($sql) or die(mysql_error());
}
// Artikel zum Anzeigen holen
$sql = "SELECT name, preis
FROM artikel, warenkorb
WHERE artikel.id =warenkorb.artikelid
AND warenkorb.kundennummer = '".$_SESSION['nummer']."'";
$result = mysql_query($sql) or die(mysql_error());
?>
<html>
<head><title>Warenkorb</title></head>
<body>
<h1>Warenkorb</h1>
Folgende Artikel befinden sich im Warenkorb:<p>
<table cellspacing="2" cellpadding="4" border="0">
<tr bgcolor="Yellow">
<th>Artikel</th><th>Preis</th>
</tr>
<?php
while ($row = mysql_fetch_assoc($result))
{
print "<tr bgcolor='Silver'>";
print "<td>".$row['name']."</td><td>".$row['preis']." EUR</td>";
print "<td><a href='warenkorb.php?löschen=".$row['artikelid']."'>"."Artikel löschen</a></td>";
print "</tr>";
}
?>
</table>
<p>
<a href="artikel.php">Zurück zur Artikelseite</a>
<p>
<a href="bestellung.php">Zur Bestellung</a>
</body>
</html>
Vielen Dank
Mike