Min kurv laver lidt problemer - eller ogsp er det mig?
Hej... Det kan nok være fordi det er lidt sent, men jeg har prøvet flere forskellige modeller.
Når jeg tilføjer en vare til min kurv skal den finde ud af om varen allerede er der, hvis den er der skal der lægges 1 til antal. Hvis varen ikke er der skal den naturligvis oprettes.
Jeg har følgende kode: $resKurv = mysql_query("SELECT id,produktID,antal FROM kurv WHERE sid = '".session_id()."' AND dato = NOW()"); if (mysql_num_rows($resKurv)) { while ($rowKurv = mysql_fetch_assoc($resKurv)) { if ($ItemNo == $rowKurv['produktID']) { $nytAntal = (int)$rowKurv['antal']+$Quantity; mysql_query("UPDATE kurv SET antal = ".$nytAntal." WHERE id = ".$rowKurv['id']); } if ($ItemNo != $rowKurv['produktID']) { mysql_query("INSERT INTO kurv (sid,produktID,antal,dato) VALUES('".$SessionID."','".$ItemNo."','".$Quantity."',NOW())"); } } } else { mysql_query("INSERT INTO kurv (sid,produktID,antal,dato) VALUES('".$SessionID."','".$ItemNo."','".$Quantity."',NOW())"); }
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det der sker er, når jeg har klikket 2 gange på en (a) vare bliver de find oprettet med varenummer og antal. Tilføjer jeg derefter en anden vare (b) vare bliver denne også oprettet. Går jeg herefter tilbage og klikker en gang til på vare a, opdateres feltet antal og varen bliver herefter oprettet igen med antal=1 Nu har jeg så 4 stk vare a, hvor jeg burde have 3...
if(in_array($Action,$validActionsArr)) { if ($Action == "Add") { $resKurv = mysql_query("SELECT id,produktID,antal FROM kurv WHERE sid = '".session_id()."' AND dato = NOW()"); if (mysql_num_rows($resKurv)) { while ($rowKurv = mysql_fetch_assoc($resKurv)) { if ($ItemNo == $rowKurv['produktID']) { $nytAntal = (int)$rowKurv['antal']+$Quantity; mysql_query("UPDATE kurv SET antal = ".$nytAntal." WHERE id = ".$rowKurv['id']); } if ($ItemNo != $rowKurv['produktID']) { mysql_query("INSERT INTO kurv (sid,produktID,antal,dato) VALUES('".$SessionID."','".$ItemNo."','".$Quantity."',NOW())"); } } } else { mysql_query("INSERT INTO kurv (sid,produktID,antal,dato) VALUES('".$SessionID."','".$ItemNo."','".$Quantity."',NOW())"); } } }
Min kurv kører ikke i sessions, fordi kunder skal have mulighed for at gemme deres kurv, det finder jeg lidt nemmere at gøre i DB - derfor har jeg valgt at gemme det hele der.
Problemet ligger i: if ($ItemNo == $rowKurv['produktID']) { $nytAntal = (int)$rowKurv['antal']+$Quantity; mysql_query("UPDATE kurv SET antal = ".$nytAntal." WHERE id = ".$rowKurv['id']); } if ($ItemNo != $rowKurv['produktID']) { mysql_query("INSERT INTO kurv (sid,produktID,antal,dato) VALUES('".$SessionID."','".$ItemNo."','".$Quantity."',NOW())"); }
Hvilket gør at hvis du har flere produkter, så vil et nyt produkt blive oprettet det antal gange som der er andre typer af produkter end det selv.
Prøv i stedet, tjek om den og kun den varer findes i kurven og opdater den, eller indsæt den som ny:
if(in_array($Action,$validActionsArr)) { if ($Action == "Add") { $resKurv = mysql_query("SELECT id,produktID,antal FROM kurv WHERE sid = '".session_id()."' AND dato = NOW() AND produktID = $ItemNo"); if (mysql_num_rows($resKurv)) { $rowKurv = mysql_fetch_assoc($resKurv); $nytAntal = (int)$rowKurv['antal']+$Quantity; mysql_query("UPDATE kurv SET antal = ".$nytAntal." WHERE id = ".$rowKurv['id']); } else { mysql_query("INSERT INTO kurv (sid,produktID,antal,dato) VALUES('".$SessionID."','".$ItemNo."','".$Quantity."',NOW())"); } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.