login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[php] Winkelmandje (Opgelost)

Offline Simax - 12/05/2008 22:36
Avatar van SimaxOnbekend Ik ben bezig met een winkel. Nu ben ik zover dat mensen producten kunnen toevoegen aan hun winkelmandje. Graag zou ik deze willen weergeven in winkelmandje.php. Het moet ook mogelijk zijn elk product afzonderlijk te verwijderen en het aantal te verhogen/verlagen.

Iemand die mij een voorbeeldje kan geven/helpen?
Alvast bedankt .

15 antwoorden

Gesponsorde links
Offline Stijn - 12/05/2008 22:47
Avatar van Stijn PHP expert Je producten zitten in een sessie, bv $_SESSION['winkelmandje']. In deze sessie zit een array met het product ID en het aantal stuks.

$_SESSION['winkelmandje'][ PRODUCT ID ] = AANTAL;

Je kan dit nu uitlezen met een foreach loop.

  1. foreach( $_SESSION['winkelmandje'] as $id => $aantal ) {
  2. echo $id . ": " . $aantal . "<br />";
  3. }


Om iets te verhogen, moet je het ID hebben. Stel dat ik product 456 wil verhogen met 5 stuks.

$_SESSION['winkelmandje'][456] += 5; (om te verlagen, zet je een MIN teken).

Een product verwijderen kan je dan zo doen.

unset( $_SESSION['winkelmandje'][456] );
Offline Simax - 12/05/2008 22:52 (laatste wijziging 12/05/2008 22:53)
Avatar van Simax Onbekend Ik heb alles bijgehouden in een database..
Ik zoek iets in de richting van..

  1. <table>
  2. <tr>
  3. <td>product_id</td>
  4. <td>product_naam</td>
  5. <td>prijs</td>
  6. <td>aantal(select)</td>
  7. <td>verwijderen</td>
  8. </tr>
  9. <tr>
  10. <td colspan="5">totaalprijs</td>
  11. </tr>
  12. </table>
Offline Stijn - 12/05/2008 22:58
Avatar van Stijn PHP expert Je moet dan in die foreach lust een mysql_query() uitvoeren die het product selecteert aan de hand van $id.
Offline Simax - 12/05/2008 22:58
Avatar van Simax Onbekend Zou je eens een voorbeeld kunnen geven, om mij een beetje op weg te helpen? Bedankt alvast..
Offline Ibrahim - 12/05/2008 23:17
Avatar van Ibrahim PHP expert Dit is basis kennis. Zoek maar naar een tutorial over het selecteren van database gegevens op.
Offline Simax - 12/05/2008 23:19
Avatar van Simax Onbekend Dat weet ik wel, maar ik zoek een systeem zoals..
http://www.warm...ingcart.do

Ik zou graag een simpel voorbeeldje zien om een beetje op weg te helpen? Kom er niet helemaal uit..
Offline vinTage - 12/05/2008 23:20
Avatar van vinTage Nieuw lid Als je er niet uitkomt post je het stukje code waar je op vastloopt 
Offline Ibrahim - 13/05/2008 00:02
Avatar van Ibrahim PHP expert inderdaad, als jij geen moeite doet, doe ik ook geen moeite.
Offline Simax - 13/05/2008 14:15 (laatste wijziging 13/05/2008 14:17)
Avatar van Simax Onbekend Dit is wat ik heb tot dusver.. Nu zou ik graag het aantal kunnen wijzigen, het product kunnen verwijderen, de totaalprijs willen zien.
Iemand die mij op weg kan helpen? 

  1. <h1>Winkelmandje</h1>
  2.  
  3. <?php
  4. if(isset($_SESSION["login"]))
  5. {
  6. $query = mysql_query("SELECT * FROM winkelmandje
  7. INNER JOIN producten ON(winkelmandje.product_id = producten.product_id)
  8. WHERE gebruiker_id = {$_SESSION["id"]}");
  9.  
  10. print "<table>
  11. <tr>
  12. <th>Product</th>
  13. <th></th>
  14. <th>Omschrijving</th>
  15. <th>Prijs</th>
  16. <th></th>
  17. </tr>";
  18. while($result = mysql_fetch_array($query))
  19. {
  20. print "<tr>
  21. <td>".$result["product_id"]."</td>
  22. <td><a href=\"?page=producten&categorie={$result["categorie_id"]}&product={$result["product_id"]}\"><img src=\"images/producten/".$result["image"]."\" class=\"productfoto_klein\"/></a></td>
  23. <td><a href=\"?page=producten&categorie={$result["categorie_id"]}&product={$result["product_id"]}\">{$result["product_naam"]}</a></td>
  24. <td>€ ".$result["prijs"]."</td>
  25. <td><img src=\"images/verwijderen.png\"/></td>
  26. </tr>";
  27. }
  28. print "</table>";
  29. }
  30. else
  31. {
  32. print "<p class=\"false\">U dient ingelogd te zijn.</p>".
  33. "<a href=\"?page=inloggen\" class=\"text\">Nu inloggen</a>";
  34. }
  35. ?>
Offline Ibrahim - 13/05/2008 20:42
Avatar van Ibrahim PHP expert Aha, je hebt je winkelwagentje in de database.

Het enige wat je moet doen is een veld toevoegen genaamd "aantal". Daarin sla je het aantal producten dat besteld is op. Zo kun je via een UPDATE query het aantal verhogen/verlagen:

  1. UPDATE winkelmandje SET aantal = aantal - 1
  2. WHERE product_id = <product_id>


Bij verhogen maak je uiteraard gebruik van +

Het verwijderen van een product is hetzelfde als het verwijderen van een record in een tabel. Sterker nog, in jou geval is het ook verwijderen van een record. In de SQL tutorials op deze site kun je een tutorial over de verschillende SQL opdrachten vinden.

Betreft de totaalprijs:

Zet bovenaan je while loop het volgende:
  1. $iTotaal = 0;


Zet aan het begin binnen je while loop het volgende:

  1. $iTotaal += $prijs;


Nu heb je het totaal in de variabele $iTotaal
Offline Simax - 14/05/2008 13:12 (laatste wijziging 14/05/2008 13:37)
Avatar van Simax Onbekend Okee, dat werkt voor zover .

Nu heb ik de volgende code om een product toe te voegen..
  1. <?php
  2. function toevoegen()
  3. {
  4. if($_SERVER["REQUEST_METHOD"] == "POST")
  5. {
  6. if(isset($_SESSION["gebruiker_id"]))
  7. {
  8. $select = mysql_query("SELECT * FROM winkelmandje WHERE gebruiker_id = '".$_SESSION["gebruiker_id"]."'");
  9. $result = mysql_fetch_array($select);
  10.  
  11. if($result["product_id"] == $_GET["product_id"])
  12. {
  13. print "Product is al toegevoegd.";
  14. }
  15. else
  16. {
  17. mysql_query("INSERT INTO winkelmandje (gebruiker_id, product_id) VALUES ('{$_SESSION["gebruiker_id"]}', '{$_GET["product"]}')");
  18. print "Product is toegevoegd aan uw winkelmandje";
  19. }
  20. }
  21. else
  22. {
  23. print "Je bent niet ingelogd.";
  24. header("refresh: 1; url=?page=inloggen");
  25. }
  26. }
  27. }
  28. ?>
  29.  
  30. <form action="" method="post" class="toevoegen">
  31. <input name="toevoegen" type="submit" value="toevoegen"/>
  32. </form>


Hoe kan ik deze functie uitvoeren wanneer men op de button klikt?
Offline jelle - 14/05/2008 17:47 (laatste wijziging 14/05/2008 17:49)
Avatar van jelle PHP beginner
  1. if(isset($_POST['submit']))
  2. {
  3. toevoegen();
  4. }
Offline Simax - 14/05/2008 18:57
Avatar van Simax Onbekend Heb je misschien een voorbeeldje van zo'n hidden field oplossing?
Offline Simax - 14/05/2008 20:12 (laatste wijziging 19/05/2008 16:27)
Avatar van Simax Onbekend Ik heb het volgende achter ieder product staan..
  1. <form action="?page=toevoegen" method="post">
  2. <input class="toevoegen" name="toevoegen" type="submit" value="toevoegen"/>
  3. </form>


Maar hoe weet toevoegen.php nu welk product hij moet toevoegen aan het winkelmandje?
Offline Simax - 19/05/2008 16:47 (laatste wijziging 19/05/2008 16:51)
Avatar van Simax Onbekend toevoegen.php
  1. <?php
  2. if($_SERVER["REQUEST_METHOD"] == "POST")
  3. {
  4. if(isset($_SESSION["login"]))
  5. {
  6. $product_id = ;
  7. $gebruiker_id = $_SESSION["gebruiker_id"];
  8.  
  9. $select = mysql_query("SELECT * FROM winkelmandje WHERE gebruiker_id = '".$gebruiker."'");
  10. $result = mysql_fetch_array($select);
  11.  
  12. if($product_id == $result["product_id"])
  13. {
  14. print "<p class=\"false\">Product is al toegevoegd.</p>";
  15. }
  16. else
  17. {
  18. mysql_query("INSERT INTO winkelmandje (gebruiker_id, product_id) VALUES ('{$product_id}', '{$gebruiker_id}')");
  19. print "<p class=\"text\">Product is toegevoegd.</p>";
  20. }
  21. }
  22. }
  23. else
  24. {
  25. print "<p class=\"false\">Je bent niet ingelogd.</p>";
  26. header("refresh: 1; url=?page=inloggen");
  27. }
  28. ?>


Edit
Ik heb het al opgelost.. namelijk zo..
  1. <form action="?page=toevoegen&id={$result["product_id"]}" method="post">
  2. <input class="toevoegen" name="toevoegen" type="submit" value="toevoegen"/>
  3. </form>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.315s