Ik zit met een probleem.
Als ik een nieuw product toevoeg en heb er al een in gaat het fout. Wat klopt er niet aan deze code? De producten worden als volgt in de sessie gezet: 4454,1|5757,2 PRODUCTNUMMER,AANTAL
// En controleren of het product al in de winkelwagen zit
$add = TRUE; // var om later te kijken of we moeten toevoegen
print_f($cart);
foreach print_f($cart);
{
$i++;
if ($i == 1) {
$_SESSION['cart'] = $products[0].",11";
} else {
$_SESSION['cart'] = $_GET['art'].",13|".$products[0].",".$products[1];
}
}
if ($add) { // Als we dus wel moeten toevoegen
$_SESSION['cart'] = $products[0].",1|".$_GET['art'].",12";
}
Dit is niet handig gedaan. $_SESSION is een array en kan ook zelf arrays bevatten. Dus zou ik et als ik jou was als volgt doen:
<?php
// add.php
session_start();
if($_GET['art'])
{
if( isset( $_SESSION['cart'][ $_GET['art'] ] ) ) // Als het artikel al in de mand zit.
{
$_SESSION['cart'][ $_GET['art'] ]++; // Voeg er 1 artikel aan toe.
}
else // Als het artikel nog niet in de mand zit, voeg er 1 van toe.
{
$_SESSION['cart'][ $_GET['art'] ] = 1;
}
}
?>
Dit is ongeveer samengevat wat jij hierboven doet. Als je iets niet snapt vraag et dan gerust.
if($count == 1)
{
$tekst_art = "<b>U heeft 1 artikel in uw winkelwagen.</b>";
}
else
{
$tekst_art = "<b>U heeft ".$count."' artikelen in uw winkelwagen.</b>";
}
$total = 0;
foreach($cart as $products)
{
$product = explode(",", $products);
$verzendkosten = 6.20;
$sql = "SELECT setnr, prijs FROM lego_pro WHERE setnr = ".$product[0]; // Weet je nog, uit die sessie
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
$pro_cart = mysql_fetch_object($query);
$i++;
Hoe kan ik dat aanpakken want zoals ik al eerder had gepost het script van het winkelwagentje krijg ik een foutmelding: "Unkown "Array"...".
Wat doe ik fout of wat gaat er fout?
Nu kan je uitlezen wanneer iemand zijn product wil toevoegen of dat product al in zijn winkelwagentje zit:
<?php
foreach ($_SESSION['product'] AS $values){
"hier de code om te controleren" ( d.m.v. $values[$product] bv )
}
<?
Als laatste zou ik meer dingen opslaan in de sessie bij het product, waaronder de naam, de prijs en de omschrijving.. als iemand onder het winkelen producten in ze winkelmandje doet, maar ondertussen word de prijs, de naam of weet k veel wat veranderd..zou een beetje lullig zijn voor de koper is t ni:P
@jeroen, en wat als er een product uit het winkelwagentje verwijderd word?
dan werkt jou code niet meer ( de for lus ) gebruik bij een array foreach, dan kom je nooit in de knoop als een bepaalde $i waarde niet meer bestaat