Hallo zusammen
ich habe mich nun ein paar Tage mit meinem Warenkorb rumgeschlagen und habs nicht ganz fertig gebracht, naja immerhin fast
Also eigentlich funktioniert alles ausser:
Artikel 123 liegt 1x im Korb
Kunde wählt ein paar andere
dann
artikel 123 1x
artikel abc 1x
artikel tes 1x
dann kann er 123 löschen - alles top.
Nun klickt er aus welchem Grund nochmal artikel abc zum Warenkorb hinzufügen an - danach machts bei mir: Löschen artikel abc raus, sichere vorher die Anzahl und addiere sie.
Dieser Vorgang geht ebenfalls - nur, das Problem ist das die anderen Einträge aus dem Array verschwinden was eher weniger gut ist
Ich weiss auch wo der Fehler ist:
Hier mal wichtiger Code:
Hier wird nix gemacht ausser einen Artikel falls er nicht vorkommt in die Session zu jagen.
Nun wirds komplexer:
Das Problem liegt 100% beim [COLOR="Red"]$_SESSION['warenkorb'] = $newkrb; [/COLOR]
An diesem Punkt wird nur noch der neue Artikel in die Session gejagt, nun verschwinden die andern.
Ich seh momentan echt den Wald vor lauter Bäumen nicht mehr.
Kann mir bitte bitte bitte jemand mitteilen wie ich den Warenkorb dazu bringe sich so zu verhalten:
Falls artikel drin
Speichere Anzahl - lösche Artikel (geht schon wie gesagt)
Jage neuen Artikel in die Session und behalte alle andern...
Da ist der Wurm...
Herzlichen Dank
Broget
ich habe mich nun ein paar Tage mit meinem Warenkorb rumgeschlagen und habs nicht ganz fertig gebracht, naja immerhin fast
Also eigentlich funktioniert alles ausser:
Artikel 123 liegt 1x im Korb
Kunde wählt ein paar andere
dann
artikel 123 1x
artikel abc 1x
artikel tes 1x
dann kann er 123 löschen - alles top.
Nun klickt er aus welchem Grund nochmal artikel abc zum Warenkorb hinzufügen an - danach machts bei mir: Löschen artikel abc raus, sichere vorher die Anzahl und addiere sie.
Dieser Vorgang geht ebenfalls - nur, das Problem ist das die anderen Einträge aus dem Array verschwinden was eher weniger gut ist
Ich weiss auch wo der Fehler ist:
Hier mal wichtiger Code:
PHP-Code:
$datenarr = $_SESSION['warenkorb'];
foreach ($datenarr as $werte)
{
$eintrag = $werte['articleId'];
if ($art == $eintrag)
{
out();
}
}
$warenkorb = $_SESSION['warenkorb'];
$b['name'] = $name;
$b['articleId'] = $art;
$b['anzahl'] = $amm;
$b['username'] = $usr;
$b['price'] = $preis;
$warenkorb[] = $b;
$_SESSION['warenkorb'] = $warenkorb;
header('location: index.php?kat=cart&ub=');
Nun wirds komplexer:
PHP-Code:
function out()
{
$amm = $_GET["amm"];
$usr = $_SESSION['username'];
$arti = $_GET["art"];
$datenarr = $_SESSION['warenkorb'];
$index = count ($datenarr);
$index = $index + 30;
/*ACHTUNG WARENKORB KANN MOMENTAN NUR ETWA 32 Einträge aufnehmen /*
/* Falls Array 4 Einträge (0-4) und danach 2 gelöscht zählt das array den index nur bis (da array noch 2 einträge) - die letzten 2 einträgen bleiben weg*/
for($dim = 0; $dim < $index; $dim++)
{
if (isset($datenarr[$dim]))
{
$krb = $datenarr[$dim];
If ( in_array($arti, $krb) )
{
/*Falls der Artikel im Warenkorb ist - löschen und neu anlegen mit neuer Anzahl + Alter */
$abfrage = "SELECT * FROM products WHERE nummer = ".$_GET['art'];
$resultat = mysql_query($abfrage)
OR die("Error: $abfrage <br>".mysql_error());
while($row = mysql_fetch_object($resultat))
{
$name = $row->name;
$preis = $row->preis;
$preis = $preis * $amm;
$lager = $row->lagerbestand;
}
$oldanz = $datenarr[$dim]['anzahl'];
unset($datenarr[$dim]);
$b['name'] = $name;
$b['articleId'] = $arti;
$b['anzahl'] = $amm + $oldanz;
$b['username'] = $usr;
$b['price'] = $preis;
$newkrb[] = $b;
$_SESSION['warenkorb'] = $newkrb;
}
else
{
/*echo "gesucht nach".$arti;
echo $datenarr[$dim]['price'];*/
}
}
else
{
$do = "nothing";
}
}
exit();
}
An diesem Punkt wird nur noch der neue Artikel in die Session gejagt, nun verschwinden die andern.
Ich seh momentan echt den Wald vor lauter Bäumen nicht mehr.
Kann mir bitte bitte bitte jemand mitteilen wie ich den Warenkorb dazu bringe sich so zu verhalten:
Falls artikel drin
Speichere Anzahl - lösche Artikel (geht schon wie gesagt)
Jage neuen Artikel in die Session und behalte alle andern...
Da ist der Wurm...
Herzlichen Dank
Broget
Kommentar