$value['art'] lese ich aus der Session aus
Problem mit "Warenkorb"
Einklappen
X
-
jetzt hagelte es Fehlermeldungen
Notice: Uninitialized string offset: 0 in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\warenkorb-all.php on line 192, 195, 198, 201
//Kategorie bestimmen
switch ($value['kat']) {
case 1 :
$i = 'w';
break;
case 2 :
$i = 'r';
break;
case 3 :
$i = 's';
break;
case 4 :
$i = 'p';
break;
}
Notice: Uninitialized string offset: 0 in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\warenkorb-all.php on line 206
$sql = "Select Abbildung, Nr, Jahrgang, Rebsorte, Flaschenart, Preis from weinshop where wnr= $value[art]";
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Notice: Undefined variable: cb in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\warenkorb-all.php on line 219
$a = $cb[$art];
Kommentar
-
ja - logisch, weil Du das Script dann entsprechend umbauen mußt.
Wenn Du das nicht hinkriegst, dann machst die Änderung eben wieder rückgängig.
Ich würd noch mal von vorne anfangen und das Script Schritt für Schritt testen und erweitern - so ist das nur Gemurkse.Zuletzt geändert von Koala; 31.03.2007, 09:03.
Kommentar
-
Original geschrieben von DorfbewohnerBD
jetzt hagelte es Fehlermeldungen
Du hast absolut keine Ahnung von PHP! Lerne Grundlagen, dann kannst du wieder anfangen, denn selbst bei den einfachsten Fehlermeldungen weisst du nicht was sie meinen, ist ja unfassbar. Der jenige, der dein "Shop" einsetzt, muss komplett bescheuert sein.
Kommentar
-
@Koala: Erst nochmal danke für deine Hilfe gestern. Der Code war wirklich ziemlich komplex.
@asp2php: deine Kritik in Ehren, aber nicht jeder ist ein Programmiergott. Als Moderator sollte dir konstruktive Kritik daher nicht unbekannt sein.
habe den Code mal auf das Wesentliche verkürzt:
PHP-Code:
<form name="form1" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table border="1" width="756">
<?php
//Schleife für checkbox und warenkorb-Ausgabe
foreach ($_SESSION['warenkorb'] as $value) {
$sql = "SELECT Abbildung, Nr, Jahrgang, Rebsorte, Flaschenart, Preis FROM weinshop WHERE wnr= $value[art]";
//fügt / hinzu um SQL-Injection abzufangen
mysql_real_escape_string($sql);
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$row['bestellmenge'] = $value['menge'];
$art = $value['art'];
//Tabellen-Spalten erzeugen
echo '<tr>';
echo '<td width="576" height="64">';
echo '<p><input type="checkbox" name="cb[' . $art . ']"></p>';
echo '</td>';
echo '<td width="576" height="64">';
//Warenkorb ausgeben
echo " <p> Nr. " . $row["Nr"] . " </p> ";
echo " <p> " . $row["Jahrgang"] . " </p> ";
echo " <p> " . $row["Rebsorte"] . " </p> ";
echo " <p>Preis " . $row["Preis"] . " €</p><br>";
// echo $row['bestellmenge'];
// echo "</pre>";
echo ' </td>';
echo '<td width="164" height="64">';
//Komma in Punkt umwandeln
$preis = floatval(str_replace(',', '.', $row["Preis"]));
$erg = ($preis * $row['bestellmenge']);
number_format($erg, 2);
//. in , umwandeln
$erg_neu = str_replace(".", ",", $erg);
//Ausgabe mit Komma
echo '<p align="center">' . $erg_neu . ' €</p>';
echo ' </td>';
echo '</tr>';
}
?>
</table>
<table border="1" width="30%">
<tr>
<td width="371">
<p align="center"><input type="submit" name="loeschen" value="löschen"></p>
</td></tr></table></form>
<?
//Formular auswerten
if (isset ($_POST['loeschen']) && isset ($_POST[cb][$art])) {
$_SESSION['warenkorb'][$art] = "";
}
?>
Notice: Use of undefined constant cb - assumed 'cb' in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\warenkorb-all.php on line 288
diese Zeile: if (isset ($_POST['loeschen']) && isset ($_POST[cb][$art]))
Hier bin ich leider noch immer nicht weiter gekommen
Kommentar
-
Und dir sollte Englisch nicht unbekannt, bzw. du wenigstens in der Lage sein, dir Fehlermeldungen rudimentär zu übersetzen.
Notice: Use of undefined constant cb - assumed 'cb' in ...
Was eine Konstante in PHP ist, weisst du doch wohl hoffentlich - sonst lies es jetzt im Handbuch nach.
diese Zeile: if (isset ($_POST['loeschen']) && isset ($_POST[cb][$art]))
Hier bin ich leider noch immer nicht weiter gekommenI don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
ok, ich hab´s. Es lag an den '.
PHP-Code:
$_POST['cb'][$art]
Zuletzt geändert von DorfbewohnerBD; 01.04.2007, 12:56.
Kommentar
-
nach dem Formular soll ggf. ein Artikel aus der SESSION gelöscht werden. Das funktioniert auch, jedoch wird es erst angezeigt, wenn ich zurück zum Shop gehe und dann wiederum in den Warenkorb zurückkehre.
PHP-Code:
if (isset ($_POST['loeschen']) && isset ($_POST['cb'][$art])) {
unset($_SESSION['warenkorb'][$art]);
}
Kommentar
Kommentar