FrankieB: warenkorb nicht aktualsieren

Beitrag lesen

Hallo nixwisserin,

da Du eh' schon Sessions verwendest kannst Du mit relativ wenig Aufwand dafür sorgen, daß Datensätze (bei einem Reload) nicht mehrfach angelegt werden.

Hi,
du könntest vor dem hinzufügen eines neuen artikels mit SELECT
überprüfen ob der schon im Warenkorb liegt. oder du legst den artikel
nicht mit INSERT sondern mit REPLACEhinzufügst.

MfG

also das mit REPLACe geht leider nicht. Aber da tut sich nix ändern.
[php]
<?session_start();
$wk_id=session_id();

if (!$_SESSION['wk_item_added']) {

include_once("dblogon.php");
$sql_wkeintrag = "REPLACE INTO warenkorb (art_nr, firmen_id, art_titel, art_preis, art_menge, art_mwst, wk_id, artikelid) values ('$art_nr', '$firmen_id', '$art_titel', '$art_preis', '$menge', '$art_mwst', '$wk_id', $artikelid)";
$result_wkeintrag = mysql_query($sql_wkeintrag) OR die(mysql_error()."  ".mysql_errno());

Nach erfolgreichem Eintrag merkst Du dir das in einer Session-Variablen, also z.B.

if ($result_wkeintrag) $_SESSION['wk_item_added'] = TRUE;

}

An einer geeigneten stelle in deinem Skript muß Du _vorher_ natürlich

$_SESSION['wk_item_added'] = FALSE;

setzen, aber _nur_ dann, wenn dein Skript in der Absicht aufgerufen wird einen Artikel (gewollt) in den wk zu legen (ansonsten bliebe ja $_SESSION['wk_item_added'] immer TRUE und man könnte keine weiteren Artikel mehr in den wk legen ...) und natürlich auch vor dem allerersten in-den-Warenkorb-legen mußt Du $_SESSION['wk_item_added'] mit FALSE vorbelegen.

Ich hoffe, dir ist das Prinzip klar geworden, ansonsten frag' einfach nochmal nach.

Grüsse
Frankie