Guten Abend,
ich habe ein Problem mit der Abfrage, ob ein Artikelname bereits als Element unter $_SESSION["Warenkorb"][$x]
exisitert, um ein doppeltes Anlegen zu vermeiden.
Hierbei prüfe ich folgende Fälle:
-
"F"(arbe) besteht* und "G"(röße) besteht nicht** und
$_SESSION["Warenkorb"][$x]["F"]
besteht und$_SESSION["Warenkorb"][$x]["F"]
ist gleich "F"
Beim abzulegenden Artikel konnte ich eine Farbe, aber keine Größe auswählen -
"G" besteht und "F" besteht nicht und
$_SESSION["Warenkorb"][$x]["G"]
besteht und$_SESSION["Warenkorb"][$x]["G"]
ist gleich "G"
Beim abzulegenden Artikel konnte ich eine Größe, aber keine Farbe auswählen -
"F"(arbe) besteht* und "G"(röße) besteht nicht** und
$_SESSION["Warenkorb"][$x]["F"]
besteht und$_SESSION["Warenkorb"][$x]["F"]
ist gleich "F"
und
"G" besteht und "F" besteht nicht und$_SESSION["Warenkorb"][$x]["G"]
besteht und$_SESSION["Warenkorb"][$x]["G"]
ist gleich "G"
Beim abzulegenden Artikel konnte ich sowohl eine Farbe, als auch eine Größe auswählen
* Die Variable ist nicht "false"
** Die Variable ist "false"
Hier der zugehörige php-Code:
if (isset ($_GET["F"]))
{
$F = $_GET["F"];
array_push ($Temp, $F);
}
else
$F = false;
if (isset ($_GET["G"]))
{
$G = $_GET["G"];
array_push ($Temp, $G);
}
else
$G = false;
if ($_SESSION["Warenkorb"][$x]["A"] == $_GET["W"]) <---
{
if (($F && !$G && isset ($_SESSION["Warenkorb"][$x]["F"]) && $_SESSION["Warenkorb"][$x]["F"] == $F) ||
($G && !$F && isset ($_SESSION["Warenkorb"][$x]["G"]) && $_SESSION["Warenkorb"][$x]["G"] == $G) ||
($G && $F && isset ($_SESSION["Warenkorb"][$x]["G"]) && $_SESSION["Warenkorb"][$x]["G"] == $G &&
isset ($_SESSION["Warenkorb"][$x]["F"]) && $_SESSION["Warenkorb"][$x]["F"] == $F))
{
$Gefunden = true;
break;
}
}
Der aufgeführte Code funktioniert und auch die mit "<---" markierte Abfrage greift, wenn ich einen gleichnamigen Artikel erneut ablegen will, aber nicht die darauffolgende, auf vier Zeilen aufgeteilte Abfrage.
Welchen Logikfehler habe ich hier gemacht?
Danke und Gruß,
Enrico