Ik ben bezig met een webshop en gebruik voor de cart een systeem met session-vars. Als er bijvoorbeeld twee producten besteld zijn, is $order het volgende:
Dat betekent dus: van product-ID 29 is er 1 stuk besteld, van product-ID 42 zijn er 4 besteld.
Nou doet het volgende zich voor. Als ik een lege cart heb en ik bestel product 29, is de array:
Bestel ik vervolgens product 42 (4 maal), dan wordt de array zoals aan het begin van de post afgebeeld. Ook het weergeven van de array verloopt goed. Verwijder ik nu het eerste product in de array, dan wordt het laatste product niet weergegeven, terwijl het nog wel in de array staat.
Heb ik dus:
De code die ik gebruik voor het weergeven van de cart is:
De code die ik gebruik voor het toevoegen van een product is:
De code die ik gebruik voor het verwijderen van een product is:
Dus alles gaat goed, behalve als het eerste product ($_SESSION["order"][0]) wordt verwijderd, dan laat hij het laatste product ($_SESSION["order"][sizeof($_SESSION["order"])-1]) niet zien. Kan iemand me helpen?
<div style="color: red">spam dus</div>
^^ Sorry, zo was het niet bedoeld, vandaar dat het er ook in kleine letters stond. Ik dacht dat het wel van pas zou kunnen komen als mensen even wat dingen zelf wilden uitproberen)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Array ( [0] => Array ( [0] => 29 [1] => 1 ) [1] => Array ( [0] => 42 [1] => 4 ) ) |
Dat betekent dus: van product-ID 29 is er 1 stuk besteld, van product-ID 42 zijn er 4 besteld.
Nou doet het volgende zich voor. Als ik een lege cart heb en ik bestel product 29, is de array:
code:
1
2
3
4
5
6
7
8
9
| Array ( [0] => Array ( [0] => 29 [1] => 1 ) ) |
Bestel ik vervolgens product 42 (4 maal), dan wordt de array zoals aan het begin van de post afgebeeld. Ook het weergeven van de array verloopt goed. Verwijder ik nu het eerste product in de array, dan wordt het laatste product niet weergegeven, terwijl het nog wel in de array staat.
Heb ik dus:
en ik verwijder product A, dan hou ik over:Product A
Product B
Product C
Product D
Product E
, maar staat product E nog wel in de array.Product B
Product C
Product D
De code die ik gebruik voor het weergeven van de cart is:
PHP:
1
2
3
4
5
6
7
8
9
10
| function ShowItem($id, $quantity) { $result = @mysql_query("SELECT * FROM shopitems WHERE ID='".$id."' ORDER BY name ASC"); while($info = @mysql_fetch_array($result)) { // Print nieuwe rij in tabel } } for($i = 0; $i < sizeof($_SESSION["order"]); $i++) { ShowItem($_SESSION["order"][$i][0], $_SESSION["order"][$i][1]); } |
De code die ik gebruik voor het toevoegen van een product is:
PHP:
1
2
| $neworder = array(array(round($_GET["id"]), $_GET["quantity"])); $_SESSION["order"] = array_merge($_SESSION["order"], $neworder); |
De code die ik gebruik voor het verwijderen van een product is:
PHP:
1
| unset($_SESSION["order"][$i]); |
Dus alles gaat goed, behalve als het eerste product ($_SESSION["order"][0]) wordt verwijderd, dan laat hij het laatste product ($_SESSION["order"][sizeof($_SESSION["order"])-1]) niet zien. Kan iemand me helpen?
<div style="color: red">spam dus</div>
^^ Sorry, zo was het niet bedoeld, vandaar dat het er ook in kleine letters stond. Ik dacht dat het wel van pas zou kunnen komen als mensen even wat dingen zelf wilden uitproberen)
[ Voor 20% gewijzigd door Verwijderd op 15-01-2004 17:43 ]