PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if-else zum insert & update des virtuellen Einkaufskorbs


Sandra
26.02.2007, 15:01:20
Hallo,

baue einen E-shop mit virtuellem Einkaufskorb, d.h. mit session- funktioniert auch.
Die session.id wird bei der Eingabe der Stückzahl neben den Artikel( also id.artikel vorhanden) über ein Formular in die Warenkorbtabelle geschrieben:
<?php @session_start();?>
//dann kommt das Formular
<?php
$_POST['id_wkorb']=".session_id().";
$id_wkorb=$_POST['id_wkorb'];
$anzahl=$_POST['anzahl'];
$id_art=$_POST['id_art'];
$size2=$_POST['size2'];

mysql_select_db($database_itc, $itc);

$query_upload = sprintf("INSERT INTO shop_wkorb(id_wkorb,id_art,anzahl,size2)
VALUES ('".session_id()."', $id_art, $anzahl, $size2)");

$upl_insert = mysql_query($query_upload, $itc) or die(mysql_error());
?>

Aber bei jeder neuen Eingabe wird eine neue session.id in die db eingetragen.
Zusätzlich soll natürlich erst geprüft werden, ob schon ein Eintrag mit dieser session.id und dem Artikel ( id.artikel) schon vorhanden ist und diesen gg nur updaten.

Dazu habe ich eine if- anweisung gemacht:

<?php
$_POST['id_wkorb']=".session_id().";
$id_wkorb=$_POST['id_wkorb'];
$anzahl=$_POST['anzahl'];
$id_art=$_POST['id_art'];
$size2=$_POST['size2'];

$session=$row_rs_session['id_wkorb'];

mysql_select_db($database_itc, $itc);
//also wenn noch kein eintrag zu dieser session, dann eintragen
if (empty($session))
{
$query_upload = sprintf("INSERT INTO shop_wkorb(id_wkorb,id_art,anzahl,size2)
VALUES ('".session_id()."', $id_art, $anzahl, $size2)");

$upl_insert = mysql_query($query_upload, $itc) or die(mysql_error());
}

//sonst nur updaten
else{
$query_update = sprintf("UPDATE shop_wkorb SET anzahl = $anzahl WHERE id_wkorb = $session AND id_art = $id_art AND size = $size2");

$_update = mysql_query($query_update, $itc) or die(mysql_error());

}
?>

Jetzt findet wenn der Warenkorb leer ist ein Eintrag statt, aber danach kein update und auch wenn man einen anderen Artikel wählt folgt kein Eintrag.

Möchte und kann mir Jemand helfen?

DANKE

Sandra

Andes
27.02.2007, 12:56:12
Bitte editiere deinen Beitrag und benutze für die Scriptteile die PHP-Box.
So lässt sich das nicht wirklich gut lesen.

Was soll dies sein?
$_POST['id_wkorb']=".session_id().";

Wo wird die Session gestartet?

Wo wird $row_rs_session['id_wkorb']; definiert?

Am besten du stellst mal dein Script ein.