login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Aantallen in sessies optellen!

Offline Chupskie - 07/07/2006 21:21 (laatste wijziging 07/07/2006 21:32)
Avatar van ChupskieMySQL beginner Ik wil dat als er al een product in het winkelwagentje staat, dat het aantal er dan bij op geteld wordt, ipv dat er een nieuwe regel met hetzelfde product (alleen een ander aantal) bij wordt gezet.

Dit is wat ik nu heb:
  1. <?php
  2. if (!isset($_SESSION['mandje'])) {
  3. $_SESSION['mandje'] = array();
  4. }
  5.  
  6. if (isset($_SESSION['mandje'][$totproduct])) {
  7. $aant = $_SESSION['mandje'][$totproduct];
  8. echo "Dit product bestaat al in de winkelwagen, en de aantallen worden nu opgeteld!";
  9. $totproduct = array();
  10. $totproduct['artikelnr'] = $_GET['artNr'];
  11. $totproduct['aantal'] = $aant + $_GET['aantal'];
  12.  
  13. }else{
  14. echo "Dit product bestaat nog niet in de winkelwagen, en wordt er nu ingezet!";
  15. $totproduct = array();
  16. $totproduct['artikelnr'] = $_GET['artNr'];
  17. $totproduct['aantal'] = $_GET['aantal'];
  18. }
  19.  
  20. //reg product in sessie
  21. $_SESSION['mandje'][] = $totproduct;
  22. ?>

Dat totproduct in de sessie bestaat nog niet denk ik?:|

Hieronder staan er 4 producten in. Waarvan de laaste 2 hetzelfde zijn, en deze had hij dus de aantallen bij elkaar op moeten tellen!
  1. Array ( [0] => Array ( [artikelnr] => 11794 [aantal] => 3 ) [1] => Array ( [artikelnr] => 12104 [aantal] => 2 ) [2] => Array ( [artikelnr] => 13111 [aantal] => 2 ) )


Kan iemand mij helpen, want ik zie echt door de bomen het bos niet meer!??:| 

-Chupskie

7 antwoorden

Gesponsorde links
Offline Tuinstoel - 07/07/2006 21:40
Avatar van Tuinstoel PHP expert Je vergeet een array in de dimensionale array. Je doet $_SESSION['mandje'][$totproduct] terwijl daartussen nog weer een andere array hoort te staan met het product, zoals je in de array onderaan aangeeft.
$_SESSION['mandje']['product'][$totproduct]
Offline Chupskie - 07/07/2006 21:44 (laatste wijziging 07/07/2006 21:57)
Avatar van Chupskie MySQL beginner En hoe lees ik dat product dan uit, ik neem aan, dat de [0], [1], [2], enzovoorts zijn?

edit:
Maar die [0], [1], [2], diet maakt hij toch automatisch aan?
Hoe kan ik die dan verbinden aan ['product'] ??
Offline Tuinstoel - 07/07/2006 22:03
Avatar van Tuinstoel PHP expert Ehrm nu raak ik ook verward door je constructie .

Ik zelf zou ongeveer zo'n structuur gebruiken;
  1. $_SESSION['mandje'] = array
  2. (
  3. 0 => array
  4. (
  5. 'naam' => 'Productnaam',
  6. 'aantal' => 1
  7. ),
  8. 1 => array
  9. (
  10. 'naam' => 'Product 2',
  11. 'aantal' => 2
  12. )
  13. );

Alleen dan hebben de array's geen namen, maar nummers. Je zou met foreach de boel kunnen doorlopen, kijken of je product er in staat.
Offline Chupskie - 07/07/2006 22:10
Avatar van Chupskie MySQL beginner En wat ik nu dus heb is dit:
  1. [0] => Array
  2. (
  3. [artikelnr] => 13036
  4. [aantal] => 3 )
  5. [1] => Array
  6. (
  7. [artikelnr] => 13036
  8. [aantal] => 3 )
  9. )


Maar hoe kan ik dan ervoor zorgen, dat de aantal opgeteld worden.
want de artikelnr's zijn hetzelfde?:|
Offline Maarten - 07/07/2006 22:46
Avatar van Maarten Erelid http://be2.php.net/array_count_values

Kijk eens aan 
Offline Chupskie - 08/07/2006 09:38
Avatar van Chupskie MySQL beginner Dank je Murfy, maar ik denk dat ik dit, in dit geval niet kan gebruiken. Array_count_values, zorgt ervoor, dat hij telt hoeveel alles voor komt in de array.

Maar wat ik probeer te bereiken is: Bij het bestellen van een product!
Dat hij eerst controleert of dat artikel er al instaat (via het artikelnr)
En dat hij daarna als het artikel er al instaat, de aantal van wat er al instond, en wat er nu bij wordt gevoegd, bij elkaar optelt.

Zodat je dus niet 2 rijen, met hetzelfde product krijgt, maar dat hij er gewoon 1 product van maakt het de opgetelde aantallen.

Is dat mogelijk? Dat zal toch wel, zo werkt dat toch in bijna elke web winkel? En kan iemand mij alsjeblieft een zetje in de goede richting geven?

-Chupskie
Offline Ibrahim - 08/07/2006 18:49
Avatar van Ibrahim PHP expert met PHP.net: in_array kan je dat denk ik wel. Dan kijk je of artikelnummer wel in de array staat, zo ja tel je bij de product het aantal erbij zonee, maak je een nieuwe 'entry'.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.34s