Versio

Multidemensionalarray, winkelwagen

Overzicht Reageren

Milo S

Milo S

07/12/2011 15:36:05
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
        )
)


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
        }
    }
}

?>
Gewijzigd op 07/12/2011 15:42:17 door Milo S
 
PHP hulp

PHP hulp

25/05/2012 06:16:32
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Ger van Steenderen

Ger van Steenderen

07/12/2011 16:02:38
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['cart']['AB78D76'] = $aantal;
?>

Je kunt dan met unset() een element uit de array verwijderen
Gewijzigd op 07/12/2011 16:03:03 door Ger van Steenderen
 
Milo S

Milo S

07/12/2011 16:21:16
Quote Anchor link
Me eerste zorg is nu toch echt het updaten van de aantallen. Daarbij is het dan niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['cart'][]['AB78D76'];
?>

ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['cart']['AB78D76'];
?>
Gewijzigd op 07/12/2011 16:25:52 door Milo S
 
Ger van Steenderen

Ger van Steenderen

07/12/2011 16:53:17
Quote Anchor link
Nee, je gebruikt gewoon de productcode als key voor in de array
 
Jacco Brandt

Jacco Brandt

07/12/2011 17:44:01
Quote Anchor link
dan maak je die array multidimensionaal, met een eventuele 'amount'-key.
 
Niels Kieviet
Beheerder

Niels Kieviet

07/12/2011 17:48:17
Quote Anchor link
Waarom gebruik je geen objecten Milo? Ik weet dat je dat kan ;-)
 
Milo S

Milo S

07/12/2011 18:07:43
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
        }
    }
}

?>


@ 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
 
Niels Kieviet
Beheerder

Niels Kieviet

08/12/2011 12:37:35
Quote Anchor link
Hoi Milo,

Volgens mij denk jij veel te moeilijk. Dit is toch gewoon 'basis' PHP?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
}
 



Overzicht Reageren