Winkelwagentje
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
// add.php
session_start();
echo $_SESSION['cart'];
if($_GET['art'])
{
if(empty($_SESSION['cart']))
{
$_SESSION['cart'] = $_GET['art'].",1";
}
else
{
$cart = explode("|",$_SESSION['cart']);
$products = explode(",",$cart);
echo $cart."-".$products;
// Winkelwagen inhoud tellen
$count = count($cart);
// 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";
}
}
}
?>
// add.php
session_start();
echo $_SESSION['cart'];
if($_GET['art'])
{
if(empty($_SESSION['cart']))
{
$_SESSION['cart'] = $_GET['art'].",1";
}
else
{
$cart = explode("|",$_SESSION['cart']);
$products = explode(",",$cart);
echo $cart."-".$products;
// Winkelwagen inhoud tellen
$count = count($cart);
// 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";
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Bart
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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;
}
}
?>
// 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.
EDIT: wat foutjes uit de code gehaald.
Gewijzigd op 01/01/1970 01:00:00 door Niels Janssen
Maar hoe kan ik het dan uitlezen in mijn winkel wagentje?
Want als ik gewoon de session laat zien krijg ik dit: "Array"
Hieronder het script van het winkelwagetje
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?
session_start();
include('config.php');
include('header.inc');
if(empty($_SESSION['cart']))
{
echo '<b>U heeft geen producten in uw winkel wagen.</b><br>';
}
else
{
$cart = explode("|",$_SESSION['cart']);
$count = count($cart);
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++;
echo '<table border="0" width="100%">
<tr bgcolor="#6487DC">
<td valign="top" width="22%"><p><b>Procuct</b></p>
<td valign="top" colspan="2"><p><b>Prijs per stuk</b></p>
<td valign="top" width="19%"><p><b>Aantal</b></p>
<td valign="top" colspan="2"><p><b>Bedrag</b></p></tr>
<form name=bestelform action=cart.php method=GET><input type=hidden name=q value=add><input type=hidden name=PHPSESSID value=d1a82440ea6ba17c59b2a6b51eb36bf6><input type=hidden name=prodID value=EDDDE9D2BE><tr>
<td valign=top width="22%"><p>
'.$pro_cart->setnr.'</p><td valign=top width="5%"><p>€<td valign=top width="32%"><div align=right><p>
'.$pro_cart->prijs.'</p></div><td valign=top width="19%">1<td valign=top width="5%"><p>€<td valign=top width="14%"><div align=right><p>';
$total = $pro_cart->prijs * 1;
echo '
'.$total.'</p></div></p></td></tr></form><tr>
<td colspan=4 valign=top height="21"><p>Verzendkosten binnen Nederland</p>
<td valign=top height="21" width="5%"><p>€</p>';
$sub_totaal = $total + $verzendkosten;
echo '<td valign=top height="21" width="14%"><div align=right><p>
6,20</p></div></td></tr><tr><td valign=top width="22%"><p><b>Totaal</b></p>
<td valign=top width="5%"><td valign=top width="32%">
<td valign=top width="19%"><td valign=top width="5%"><p><b>€</b></p>
<td valign=top width="14%"><div align=right><p>'.$subtotaal.'</p></div></td></tr></table><br>
<table border="0"><tr><td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=bfr">
<img src="bes.bmp" border="0" alt="Bestelling afhandelen"></a><td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=bfr">Bestelling afhandelen</a>
<td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=emp">
<img src="emp.bmp" border="0" alt="Winkelwagen leegmaken"></a><td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=emp">Winkelwagen leegmaken</a>
<td>
<a href="javascript:window.print()">
<img src="printer.bmp" border="0" alt="Pagina afdrukken"></a><td>
<a href="javascript:window.print()">Pagina afdrukken</a>
</td></tr></table> ';
}
}
include('footer.inc');
?>
session_start();
include('config.php');
include('header.inc');
if(empty($_SESSION['cart']))
{
echo '<b>U heeft geen producten in uw winkel wagen.</b><br>';
}
else
{
$cart = explode("|",$_SESSION['cart']);
$count = count($cart);
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++;
echo '<table border="0" width="100%">
<tr bgcolor="#6487DC">
<td valign="top" width="22%"><p><b>Procuct</b></p>
<td valign="top" colspan="2"><p><b>Prijs per stuk</b></p>
<td valign="top" width="19%"><p><b>Aantal</b></p>
<td valign="top" colspan="2"><p><b>Bedrag</b></p></tr>
<form name=bestelform action=cart.php method=GET><input type=hidden name=q value=add><input type=hidden name=PHPSESSID value=d1a82440ea6ba17c59b2a6b51eb36bf6><input type=hidden name=prodID value=EDDDE9D2BE><tr>
<td valign=top width="22%"><p>
'.$pro_cart->setnr.'</p><td valign=top width="5%"><p>€<td valign=top width="32%"><div align=right><p>
'.$pro_cart->prijs.'</p></div><td valign=top width="19%">1<td valign=top width="5%"><p>€<td valign=top width="14%"><div align=right><p>';
$total = $pro_cart->prijs * 1;
echo '
'.$total.'</p></div></p></td></tr></form><tr>
<td colspan=4 valign=top height="21"><p>Verzendkosten binnen Nederland</p>
<td valign=top height="21" width="5%"><p>€</p>';
$sub_totaal = $total + $verzendkosten;
echo '<td valign=top height="21" width="14%"><div align=right><p>
6,20</p></div></td></tr><tr><td valign=top width="22%"><p><b>Totaal</b></p>
<td valign=top width="5%"><td valign=top width="32%">
<td valign=top width="19%"><td valign=top width="5%"><p><b>€</b></p>
<td valign=top width="14%"><div align=right><p>'.$subtotaal.'</p></div></td></tr></table><br>
<table border="0"><tr><td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=bfr">
<img src="bes.bmp" border="0" alt="Bestelling afhandelen"></a><td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=bfr">Bestelling afhandelen</a>
<td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=emp">
<img src="emp.bmp" border="0" alt="Winkelwagen leegmaken"></a><td>
<a href="cart.php?PHPSESSID=d1a82440ea6ba17c59b2a6b51eb36bf6&q=emp">Winkelwagen leegmaken</a>
<td>
<a href="javascript:window.print()">
<img src="printer.bmp" border="0" alt="Pagina afdrukken"></a><td>
<a href="javascript:window.print()">Pagina afdrukken</a>
</td></tr></table> ';
}
}
include('footer.inc');
?>
Hoe kan ik een array uitlezen?
foreach, implode, for...
Wat doe ik fout of wat gaat er fout?
dus zet er een lusje omheen..en benader niet de array, maar de INHOUD zoals: $arr[id]
en dan
Vervolgens als er een product toegevoegt moet worden:
Zo komt je hele product array er zo uit te zien:
Code (php)
Nu kan je uitlezen wanneer iemand zijn product wil toevoegen of dat product al in zijn winkelwagentje zit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
foreach ($_SESSION['product'] AS $values){
"hier de code om te controleren" ( d.m.v. $values[$product] bv )
}
[code]<?
[/code]
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
Hoop dat je hier wat aan hebt..
gr,
nick
foreach ($_SESSION['product'] AS $values){
"hier de code om te controleren" ( d.m.v. $values[$product] bv )
}
[code]<?
[/code]
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
Hoop dat je hier wat aan hebt..
gr,
nick
Gewijzigd op 01/01/1970 01:00:00 door nick
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
Gewijzigd op 01/01/1970 01:00:00 door nick
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
foreach( $_SESSION['cart'] as $productnummer => $aantal )
{
// Doe hier wat je wil met $productnummer en $aantal
}
?>
foreach( $_SESSION['cart'] as $productnummer => $aantal )
{
// Doe hier wat je wil met $productnummer en $aantal
}
?>
en als je 1 product wilt verwijderen uit het wagentje doe dan
$productnummer is het nummer van het product dat je wilt verwijderen, er is geen link met de foreach lus
en als je wilt weten of er wel producten in het wagentje zitten gebruik dan
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Niels Janssen
Bij jou heb ik de meeste en belangrijkste informatie vandaan. Hij is nu werkende.
Bedankt en fijne feestdagen en een voorspoedig 2007!!
( waarom heb je opeens een andere account? :s )