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.
<?php
if (!isset($_SESSION['mandje'])) {
$_SESSION['mandje'] = array();
}
if (isset($_SESSION['mandje'][$totproduct])) {
$aant = $_SESSION['mandje'][$totproduct];
echo "Dit product bestaat al in de winkelwagen, en de aantallen worden nu opgeteld!";
$totproduct = array();
$totproduct['artikelnr'] = $_GET['artNr'];
$totproduct['aantal'] = $aant + $_GET['aantal'];
}else{
echo "Dit product bestaat nog niet in de winkelwagen, en wordt er nu ingezet!";
$totproduct = array();
$totproduct['artikelnr'] = $_GET['artNr'];
$totproduct['aantal'] = $_GET['aantal'];
}
//reg product in sessie
$_SESSION['mandje'][] = $totproduct;
?>
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]
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?
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'.