Multidemensionalarray, winkelwagen
Beste,
Ik probeer een webshop op te stellen met producten die een artikelnummer en prijs bezitten. Deze producten worden toegevoegd in een array om vervolgens je winkelwagen uit te kunnen lezen. Het aantal moet gewijzigd kunnen worden en de producten zelfs verwijderd uit de wagen.
Nu dacht ik doen we even, maar hoe meer ik erover nadenk hoe lastiger het wordt.
Mijn doel:
Is er iemand die mij meer kan uitleggen over het aanmaken van zo'n array in een sessie en eventueel het updaten van de aantallen.
Ik ben tot het volgende, maar zoals je ziet loop ik vast bij het updaten van de aantallen. Mocht er iets anders niet kloppen hoor ik dat graag.
Ik probeer een webshop op te stellen met producten die een artikelnummer en prijs bezitten. Deze producten worden toegevoegd in een array om vervolgens je winkelwagen uit te kunnen lezen. Het aantal moet gewijzigd kunnen worden en de producten zelfs verwijderd uit de wagen.
Nu dacht ik doen we even, maar hoe meer ik erover nadenk hoe lastiger het wordt.
Mijn doel:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Array
(
[0] => Array
(
[0] => AB98D78
[1] => 12
)
[1] => Array
(
[0] => AB99U77
[1] => 9
)
[2] => Array
(
[0] => AB97A18
[1] => 5
)
)
(
[0] => Array
(
[0] => AB98D78
[1] => 12
)
[1] => Array
(
[0] => AB99U77
[1] => 9
)
[2] => Array
(
[0] => AB97A18
[1] => 5
)
)
Is er iemand die mij meer kan uitleggen over het aanmaken van zo'n array in een sessie en eventueel het updaten van de aantallen.
Ik ben tot het volgende, maar zoals je ziet loop ik vast bij het updaten van de aantallen. Mocht er iets anders niet kloppen hoor ik dat graag.
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
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
<?php
# Artikelnummer
$artnr = isset( $_GET['art'] ) ? htmlentities( $_GET['art'] ) : FALSE;
# Aantal
$aantal = isset( $_GET['aantal'] ) ? htmlentities( $_GET['aantal'] ) : FALSE;
# Er is een art nr en aantal meegezonden
if( $artnr != FALSE && $aantal != FALSE )
{
# Winkelwagen leeg
if( empty( $_SESSION['cart'] ) )
{
$_SESSION['cart'] = array( $artnr, $aantal );
}
else
{
if( !isset( $_SESSION['cart'][][$artnr] ) )
{
$_SESSION['cart'][] = array( $artnr, $aantal );
}
else
{
$_SESSION['cart'][] = array( $artnr, $aantal );
$_SESSION['cart'][][1];
$_SESSION['cart'][]['aantal'] = $_SESSION['cart'][]['aantal'] + $aantal;
}
}
}
?>
# Artikelnummer
$artnr = isset( $_GET['art'] ) ? htmlentities( $_GET['art'] ) : FALSE;
# Aantal
$aantal = isset( $_GET['aantal'] ) ? htmlentities( $_GET['aantal'] ) : FALSE;
# Er is een art nr en aantal meegezonden
if( $artnr != FALSE && $aantal != FALSE )
{
# Winkelwagen leeg
if( empty( $_SESSION['cart'] ) )
{
$_SESSION['cart'] = array( $artnr, $aantal );
}
else
{
if( !isset( $_SESSION['cart'][][$artnr] ) )
{
$_SESSION['cart'][] = array( $artnr, $aantal );
}
else
{
$_SESSION['cart'][] = array( $artnr, $aantal );
$_SESSION['cart'][][1];
$_SESSION['cart'][]['aantal'] = $_SESSION['cart'][]['aantal'] + $aantal;
}
}
}
?>
Gewijzigd op 07/12/2011 15:42:17 door Milo S
Gesponsorde koppelingen:
Je kunt dan met unset() een element uit de array verwijderen
Gewijzigd op 07/12/2011 16:03:03 door Ger van Steenderen
Me eerste zorg is nu toch echt het updaten van de aantallen. Daarbij is het dan niet
ipv
ipv
Gewijzigd op 07/12/2011 16:25:52 door Milo S
Nee, je gebruikt gewoon de productcode als key voor in de array
dan maak je die array multidimensionaal, met een eventuele 'amount'-key.
Waarom gebruik je geen objecten Milo? Ik weet dat je dat kan ;-)
Ik kan het helaas niet testen, want ik zit in de bus... Hele tijd files oversturen van blackberry naar laptop haha!
Als ik het goed begrijp kom ik dan op zo iets uit:
@ Niels; Omdat ik nu eindelijk wel eens door moet krijgen hoe dit zit ;) :P
Als ik het goed begrijp kom ik dan op zo iets uit:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
# Er is een art nr en aantal meegezonden
if( $artnr != FALSE && $aantal != FALSE )
{
# Winkelwagen leeg
if( empty( $_SESSION['cart'] ) )
{
$_SESSION['cart']['artnr'] = $artnr;
$_SESSION['cart'][$artnr]['aantal'] = $aantal;
}
else
{
if( !isset( $_SESSION['cart'][$artnr] ) )
{
$_SESSION['cart']['artnr'] = $artnr;
$_SESSION['cart'][$artnr]['aantal'] = $aantal;
}
else
{
$_SESSION['cart'][$artnr]['aantal'] = $_SESSION['cart'][$artnr]['aantal'] + $aantal;
}
}
}
?>
# Er is een art nr en aantal meegezonden
if( $artnr != FALSE && $aantal != FALSE )
{
# Winkelwagen leeg
if( empty( $_SESSION['cart'] ) )
{
$_SESSION['cart']['artnr'] = $artnr;
$_SESSION['cart'][$artnr]['aantal'] = $aantal;
}
else
{
if( !isset( $_SESSION['cart'][$artnr] ) )
{
$_SESSION['cart']['artnr'] = $artnr;
$_SESSION['cart'][$artnr]['aantal'] = $aantal;
}
else
{
$_SESSION['cart'][$artnr]['aantal'] = $_SESSION['cart'][$artnr]['aantal'] + $aantal;
}
}
}
?>
@ Niels; Omdat ik nu eindelijk wel eens door moet krijgen hoe dit zit ;) :P
Gewijzigd op 07/12/2011 18:18:44 door Milo S
Hoi Milo,
Volgens mij denk jij veel te moeilijk. Dit is toch gewoon 'basis' PHP?
Volgens mij denk jij veel te moeilijk. Dit is toch gewoon 'basis' PHP?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$artikelnr = '1.00.000.00';
$aantal = 2;
$stukprijs = 1;
$_SESSION['cart'] = array();
$_SESSION['cart']['artikelen'] = array();
$_SESSION['cart']['artikelen'][$artikelnr] = array(); // Even voor het idee..
$_SESSION['cart']['artikelen'][$artikelnr]['aantal'] = $aantal;
$_SESSION['cart']['artikelen'][$artikelnr]['stukprijs'] = $stukprijs;
// Items weergeven
foreach ($_SESSION['cart']['artikelen'] as $artikel) {
echo $artikel['aantal'];
echo $artikel['stukprijs'];
}
$artikelnr = '1.00.000.00';
$aantal = 2;
$stukprijs = 1;
$_SESSION['cart'] = array();
$_SESSION['cart']['artikelen'] = array();
$_SESSION['cart']['artikelen'][$artikelnr] = array(); // Even voor het idee..
$_SESSION['cart']['artikelen'][$artikelnr]['aantal'] = $aantal;
$_SESSION['cart']['artikelen'][$artikelnr]['stukprijs'] = $stukprijs;
// Items weergeven
foreach ($_SESSION['cart']['artikelen'] as $artikel) {
echo $artikel['aantal'];
echo $artikel['stukprijs'];
}



