14. september 2005 - 20:11Der er
28 kommentarer og 1 løsning
Webshop og Sessioner
Jeg her nok taget et rimeligt stort skridt iom at jeg endnu ikke har fattet grundprincipperne i Sessioner, men jeg er igang med at designe min egen shop. og jeg skal nu til at kunne styre en inkøbskurv via sessioner, men jeg er lidt lost. Er der en venlig sjæl der kan komme med lidt gode indput, Jeg bruger php 5 og mysql. mine sessions filer gemmes på min windows 2003 sbs server under c:\php\session
Mine vare ligger i en tabel i mysql hvori der både er unik Id nr og en unik varenummer.
Det jeg kunne forstille mig er at når der trykkes på "Læg i kurv" så skal der oprettes et array "Eller hvad det heder" i Sessionen og heri skal den gemme alle varenummer. men men men jeg er ret lost.
Jeg ville blive glad for llidt feedback.
"Jeg har bogen Avanceret php" som jeg lige vil studere lidt mens jeg venter på jeres guldkorn.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Altså selve $_SESSION['varer'] er jo "bare" et array. Så du kan løbe det igennem med: foreach($_SESSION['varer'] as $vare) { echo "Vare: " . $vare['navn'] . "<br>"; echo "Pris: " . $vare['pris'] . "<br>"; }
Og for at putte data i, kan du bruge koden på denne side: http://www.eksperten.dk/spm/647855 Der kan du se koden krk bruger til sin webshop!
Det som er forskellen på dit eksempel, og koden her, er at alle vare er hentet fra en DB, og dermed har de unikt ID alle sammen! Det tror jeg du mangler!
Nu har jeg fået det til at køre og endda fået lavet en counter der tæller hvor mange varer man har i shoppen, Nu sidder jeg så her og gerne vil have at den totale pris skrives til en variable som jeg så senere kan echo $var;
Sådan her, så vil $totalPris indeholde prisen for alle vare i kurven. $totalpris = 0; foreach($_SESSION['varer'] as $vare) { $totalTemp = $vare['Productpris'] * $vare['antal']; $totalpris += $totalTemp; echo "Total: " . $totalTemp . "<br>"; }
Nu har jeg selv rodet lidt med det og nu funger det. sidste ting.
Har du en god ide til hvordan jeg kan ændre en session. sltså når kunderne ligger i checkup.php og de kan se at de har købt 2 af product X og 4 stk af product Y.
Hvis man så ændre 4 til 2 i product y, og trykker opdatere, hvordan for jeg så ændret hele sessionen ?
Altså hver vare har jo et unikt id, via: $_SESSION['varer']['Productid'] Det trækker du så ud (evt i en form) Så laver du nogle felter som viser antal vare = 2 (det skal være et input felt) Så kan brugeren skrive 4, trykke opdater og så gemmer den 4 i antal, og ikke 2 som før.
det forstår jeg ikke helt, Vil det sige at jeg ligger en form rundt om min foreach som ved aktiveringen, sender data til en side hvor i der står noget ala.
Kan faktisk godt forstå at du spørger dig selv om det og jeg undskylder at jeg måske ikke er den skarbeste kniv i skuffen, men almindelige variabler og sql har jeg god styr på men de her sessioner fatter jeg ikke meget af.
Men ovenstående kode er den side der viser min indkøbskurv. den har nogle input boxe hvor antallet af vore står i. nu har jeg så tilføjet en opdater knap som i aktion har "http://www.host.dk?Site=5&Opdate=ok" når siden genindlæses includer den en side der har en masse slave kode i sig, altså alle de processer som jeg ønsker udført. bla, reg af session variabler. Men nu vil jeg så gerne tilføje en funktion der siger at
if($Opdate=="OK") {Opdater antallet af vare i den givne vare)
Men det er det med at få den til at gøre det jeg ikke fatter, havde det været SQL havde jeg jo bare skrevet Update bla bla where Id = '$Id'
men dette er jo ikke sql men sessioner så det er her jeg spøger hvor klare jeg den
Ok, så må du skære det ud i pap for mig! :o) Hvad ønsker du opdateret? du har jo: $_SESSION['varer'] som indeholder nogle varer. Hvis du vil opdatere vare med id2, tager du:
$_SESSION['varer']['id2']['antal'] = 100; eller navnet: $_SESSION['varer']['id2']['produktnavn'] = "Nyt Produkt";
hvis jeg må blive tilføjet din MSN "skal nok lade være med at misbruge det" så kan jeg vise dig hvad det drejer sig om min MSN er " 23ricky@romdata.dk23 " Fjern 23 i begge ender.
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.