login  Naam:   Wachtwoord: 
Registreer je!
 Forum

winkelsysteem

Offline phpfreak - 30/03/2007 12:33
Avatar van phpfreakPHP beginner Ik ben bezig met een website, en ben daar nu een winkelsysteem aan het opzetten, nu ik heb al eens bij scripts gaan kijken hier,maar er staat geen winkelsysteem bij. Nu is mijn vraag, hoe onthoud ik het winkelmandje van een bepaalde gebruiker? Zowiso via een database, maar nu heb ik 1 mogelijkheden: ofwel met cookies, ofwel met ip adres. Wat is volgens jullie het beste? En indien cookies, hoe link ik dan die cookies aan de items in de database?

8 antwoorden

Gesponsorde links
Offline Mad_Mike - 30/03/2007 12:40
Avatar van Mad_Mike PHP beginner sessies? user_id?
Offline BigBug - 30/03/2007 12:40
Avatar van BigBug PHP expert Cookies raad ik je af.. Sessies is het beste wat je kan doen denk ik En in een sessie zet je dan het id van het product + hoeveelheid. Bij het winkelmandje haal je dit op en haal je de prijs etc. uit de DB.
Offline Martijn1989 - 30/03/2007 12:47
Avatar van Martijn1989 PHP ver gevorderde Sessies, idd .. als je de pagina sluit is je winkelwagentje ook leeg. Dat is denk ik het beste. Werk je met gebruikers, dan gewoon userid, maar anders met sessies.
Offline phpfreak - 30/03/2007 12:53
Avatar van phpfreak PHP beginner Hmm maar hoe sla ik die sessies op? stel dat een gebruiker 5 x product x heeft, moet ik dan ook 5 sessies maken van product x? en kan ik met sessies werken als arrays? bvb
$_SESSION["winkelwagen"][0]="5" (5 is dan product id)
$_SESSION["winkelwagen"][1]="5"
en achteraf optellen?
Want stel dat dan iemand 2x 10 producten in winkel wagen legt, heb je al direkt 20 sessies he. En voor die met dezelfde waarde op te tellen, weet ik ook niet hoe ikdat moet doen dan
Offline Dark_Paul - 30/03/2007 13:02
Avatar van Dark_Paul PHP ver gevorderde $_SESSION['winkelwagen']['productid'] = 'aantal geselecteerd van product';
Bij het toevoegen van een product kijk je of dat product al is toegevoegd. Zoja, voeg het geselecteerde aantal er aan toe. Zo nee, voeg het toe aan de array.
Offline phpfreak - 30/03/2007 13:06 (laatste wijziging 30/03/2007 13:12)
Avatar van phpfreak PHP beginner Ok, zo had ik het niet gezien, bedankt voor de hulp!!

Edit: Kan iemand me nog wat helpen? Ik snap niet hoe je dan weet welke sessies er bestaan, je kan bijvoorbeeld al niet
$_SESSION["winkelwagen"][5] oproepen, want daarvoro moet je weten dat de gebruiker artikel met id 5 in zijn winkelmandje heeft niet?
Offline webstab - 30/03/2007 13:16
Avatar van webstab PHP ver gevorderde $_SESSION['winkelwagen'] is een array met al wat in het karretje zit.
Dus je kunt gewoon deze array uitlezen met foreach (zie php.net).

Je kan natuurlijk ook kijken per product op het wel bestaat
Isset($_SESSION['winkelwagen'][id]) maar deze methode is niet handig voor alle producten te achterhalen, wel om te zien of van dat specifiek product al iets in het karretje ligt.
Offline Martijn1989 - 30/03/2007 17:08 (laatste wijziging 30/03/2007 17:09)
Avatar van Martijn1989 PHP ver gevorderde Bij het toevoegen :

  1. <?php
  2. $id = $_POST['id'];
  3.  
  4.  
  5. if( is_array( $_SESSION['artikel'][ $id ] ) == true ) {
  6. $_SESSION['artikel'][$id]['aantal'] = $_SESSION['artikel'][$id]['aantal'] + $_POST['aantal'];
  7.  
  8. } else {
  9.  
  10. $_SESSION['artikel'][$id] = array("id" => $id , "aantal" => $_POST['aantal']);
  11.  
  12. }
  13. ?>


Bij het weergeven :

  1. <?php
  2. foreach ($mijn_array_id as $key => $val) {
  3.  
  4. $aantalproduct = $_SESSION['artikel'][$val]['aantal'];
  5. $select = mysql_query("SELECT `id`, `naam`, `prijs`, `btw` FROM `artikel` WHERE `id` = '". $val ."'") or die (Mysql_Error());
  6. $obj = mysql_fetch_assoc($select);
  7.  
  8. $prijs = $aantalproduct * $obj['prijs'];
  9. $totaalprijs = $totaalprijs + $prijs;
  10.  
  11.  
  12. $btw1 = ($obj['btw'] + 100) / 100;
  13. $btw2 = $obj['prijs'] * $btw1;
  14. $btw3 = $btw2 - $obj['prijs'];
  15. $btw4 = $btw3 * $aantalproduct;
  16.  
  17.  
  18.  
  19. $prijs2 = ($obj['prijs'] * $aantalproduct) * $btw1;
  20.  
  21. if($obj['btw'] == 7) {
  22.  
  23. $pro7 = $pro7 + $btw4;
  24.  
  25. } elseif($obj['btw'] == 16) {
  26.  
  27. $pro16 = $pro16 + $btw4;
  28.  
  29. }
  30.  
  31. $artikelen = $artikelen ."Artikelid : ". $val ." (". $obj['naam'] .") (". $aantalproduct ." X) (&euro; ". number_format($prijs2,2,',','.') .")<br>";
  32.  
  33. }
  34.  
  35. $totaalbtw = $pro7 + $pro16;
  36.  
  37. $totaalprijs = $totaalprijs + $totaalbtw;
  38.  
  39. echo "Je hebt dit besteld : <br><br>
  40.  
  41. ". $artikelen ."<br><br>
  42.  
  43. Met een totaal prijs van : &euro; ". number_format($totaalprijs,2,',','.');
  44. ?>


Komt uit een oude zelfgemaakte webshop van mij, hiermee lukt het je denk ik wel?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s