[PHP] Arrays in een sessie

Pagina: 1
Acties:
  • 207 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Xiqum
  • Registratie: Juni 2003
  • Laatst online: 21-09 12:41
Ik ben momenteel bezig met een soort webshop echter loop ik tegen een probleem aan.

Ik heb een database met daarin producten, deze producten hebben allemaal een ID. Dit id zet ik in een array die in een sessie staat. Evenals het aantal van het producten dat men hiervan wilt hebben.

Nu zit ik echter met het probleem dat als ik "ProductY" 3x na elkaar bestel, daarna "ProductX" 1 keer bestel. En daarna weer "ProductY" bestel hij er niet 4 van maakt maar weer naar 1 gaat.

Niet zo handig voor een webshop ;)

Welk product er in de array moet komen word gewoon verstuurd d.m.v. een variabele > $pid

Mijn code is alsvolgt:
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
<?php
$act = $_GET['act'];

if($act=='add'){

    if(isset($_SESSION['cart'])){
    
        foreach ($_SESSION['cart'] as $w2){

            //Als het product al in de sessie staat
            if($pid==$w2['pid']){
                $_SESSION['cart'][$w2['pid']] = array('pid' => $w2['pid'], 'qty' => $w2['qty'] + 1);
            }
            //Anders
            else{
                $_SESSION['cart'][$pid] = array('pid' => $pid, 'qty' => 1);
            }   
                
        }
        
    }
    else{
        $_SESSION['cart'][$pid] = array('pid' => $pid, 'qty' => 1);
    }
}

Heeft iemand enige idee wat ik fout doe?
De site staat hier op de onderstaande lokatie mocht je het willen testen.
http://server.xiqum.net/itshop

[ Voor 53% gewijzigd door Xiqum op 23-05-2006 20:38 ]



Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Die view- en deletecode lijken me geenszins relevant. Kun je voor de overzichtelijkheid even alle overbodige code weghalen uit je topicstart?

Probeer dit eens in plaats van je hele huidige add-blok?
PHP:
1
2
3
4
5
6
7
if($act=='add'){
    if (isset($_SESSION['cart']) && array_key_exists($pid, $_SESSION['cart'])) {
        $_SESSION['cart'][$pid]['qty'] += 1;
    } else {
        $_SESSION['cart'][$pid] = array('pid' => $pid, 'qty' => 1);
    }
}

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Xiqum
  • Registratie: Juni 2003
  • Laatst online: 21-09 12:41
En het werkt! Heel erg bedankt -NMe- ik zal me nu eens goed gaan verdiepen in wat je voor mooi's hebt gemaakt. Zodat ik het de volgende keer hier niet hoef te vragen _/-\o_