Variabele laatste getal
Ik heb een variabele "$qty" deze staat voor quantity. Hierin staat hoevaak een product besteld is. Als ik deze variabele dan echo, krijg ik hier bijv. '123' uit.
Mijn vraag is, hoe krijg ik steeds het laatste getal eruit?
Mijn vraag is, hoe krijg ik steeds het laatste getal eruit?
het laatste getal eruit?
Hoeveel getallen staan er dan in "$qty" wanneer je het laatste getal eruit wilt halen?
Hoeveel getallen staan er dan in "$qty" wanneer je het laatste getal eruit wilt halen?
qty word steeds opgehoogd. Dus als ik 5 producten bestel. komt er uit qty 12345.
nou wil ik gewoon 5 hebben. hopelijk snappen jullie het nu.
@Jelle - nee werkt niet.
Alvast bedankt,
nou wil ik gewoon 5 hebben. hopelijk snappen jullie het nu.
@Jelle - nee werkt niet.
Alvast bedankt,
zouw wel moeten zie hier voorbeeld
moet gewoon werken hoor
maar waarom 12345 in $qty en niet alleen 5 door steeds $qty = $qty+1 oid ?? Je gaat namelijk helemaal de mist in wanneer het 10 of meer producten wordt: 12345678910 ??
Gewijzigd op 12/11/2010 10:25:03 door John D
Ik ga hier even mee aan de slag. Bedankt voor de reacties. Ik zie nu ook dat het werkt maar moet even wat aanklooien met een foreach loop.
- Zelfde als John maar veels te laat. -
Gewijzigd op 12/11/2010 10:29:07 door - Mark -
Waarom maak je geen array?
array("1", "2", "3", "4", "5")
Dan kan je gemakkelijker de laatste ophalen en zonder fouten zoals John D benoemd, bij 10 of 100.
array("1", "2", "3", "4", "5")
Dan kan je gemakkelijker de laatste ophalen en zonder fouten zoals John D benoemd, bij 10 of 100.
-- spuit 11 --
Gewijzigd op 12/11/2010 10:52:06 door Jacco Engel
volgens mij heb ik het een beetje verkeerd verwoord.
dan krijg ik 12345 dus ik had niet goed opgelet.
hebben jullie een idee hoe ik dan het laatste getal uit qty kan krijgen?
bedankt voor al jullie reacties
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$contents = array();
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
dan krijg ik 12345 dus ik had niet goed opgelet.
hebben jullie een idee hoe ik dan het laatste getal uit qty kan krijgen?
bedankt voor al jullie reacties
Gewijzigd op 12/11/2010 10:59:28 door Tim Fendt
wat zit erin in $contents?
blijft nogsteeds 12345.
Als je 12345 als output krijgt klopt er iets niet in je display. Cijfers moet je altijd scheiden. Bijvoorbeeld door een komma. Dan kan je vervolgens met een explode de cijfers weer lostrekken en de laatste ophalen.
Ik zag je edit te laat, Hoe ziet je items array eruit als ik vragen mag? Het ziet er allemaal wat vreemd 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
25
26
27
28
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
<?php
$cart = $_SESSION['cart'];
$items = explode(',',$cart);
$contents = array();
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
//dit staat in session cart (als het goed is)
case 'add':
if ($cart)
{
$cart .= ','.$_GET['id'];
}
else
{
$cart = $_GET['id'];
}
break;
?>
$cart = $_SESSION['cart'];
$items = explode(',',$cart);
$contents = array();
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
//dit staat in session cart (als het goed is)
case 'add':
if ($cart)
{
$cart .= ','.$_GET['id'];
}
else
{
$cart = $_GET['id'];
}
break;
?>
Gewijzigd op 12/11/2010 11:11:22 door Tim Fendt
Even kijken of ik op het goede spoor zit.
Je gooit elk item los in je winkelwagen en nu wil je weten hoevel er van elk item is?
Je gooit elk item los in je winkelwagen en nu wil je weten hoevel er van elk item is?
inderdaad :D
We zijn dan wel behoorlijk aan het afdwalen van de oorspronkelijke vraag. Het zal wel aan mij liggen maar het ziet er nogal vreemd uit. En niet echt optimaal.
LET OP! Je kunt onderstaande code niet plakken in jouw script, Het idee was om je de werking uit te leggen. even in een appart bestandje zetten dus.
Ik weet niet wat beter is, ik heb nog nooit een webshop gebouwd maar ik denk dat gemakkelijker is als je $_SESSION['cart'] direct de tweede array bevat.
:p hopelijk sla ik de plank niet volledig mis zoals wel vaker het geval is.
LET OP! Je kunt onderstaande code niet plakken in jouw script, Het idee was om je de werking uit te leggen. even in een appart bestandje zetten dus.
Ik weet niet wat beter is, ik heb nog nooit een webshop gebouwd maar ik denk dat gemakkelijker is als je $_SESSION['cart'] direct de tweede array bevat.
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
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
<?php
/*---- INFO! ---->
Stel we hebben een winkelwagen met de volgende inhoud:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
LET OP! Deze data staat op een verkeerde manier in $_SESSION['cart'] in jouw script als je het mij vraagt.
Jij hebt de data in $_SESSION['cart'] als een string opgeslagen. Je maakt er doormiddel van explode
een array van. Waarom niet de data direct als een array in $_SESSION['cart'] opslaan?
*/
$chart = array(1, 3, 4, 3, 1, 4, 4, 1);
/*---- INFO! ---->
Dan gaan we nu een nieuwe array aanmaken met daarin het aantal van elk item.
In $chart_items komt nu als het goed is het volgende te staan:
array(1 => 3, 3 => 3, 4 => 3)
In andere woorden:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
We zijn dan dus weer terug bij het begin eigenlijk.
*/
$chart_items = array_count_values($chart);
/*---- INFO! ---->
Dan gaan we nu alle Items weergeven.
*/
foreach($chart_items as $item => $count){
echo 'We hebben '.$count.' keer item '.$item.'.<br />';
}
?>
/*---- INFO! ---->
Stel we hebben een winkelwagen met de volgende inhoud:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
LET OP! Deze data staat op een verkeerde manier in $_SESSION['cart'] in jouw script als je het mij vraagt.
Jij hebt de data in $_SESSION['cart'] als een string opgeslagen. Je maakt er doormiddel van explode
een array van. Waarom niet de data direct als een array in $_SESSION['cart'] opslaan?
*/
$chart = array(1, 3, 4, 3, 1, 4, 4, 1);
/*---- INFO! ---->
Dan gaan we nu een nieuwe array aanmaken met daarin het aantal van elk item.
In $chart_items komt nu als het goed is het volgende te staan:
array(1 => 3, 3 => 3, 4 => 3)
In andere woorden:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
We zijn dan dus weer terug bij het begin eigenlijk.
*/
$chart_items = array_count_values($chart);
/*---- INFO! ---->
Dan gaan we nu alle Items weergeven.
*/
foreach($chart_items as $item => $count){
echo 'We hebben '.$count.' keer item '.$item.'.<br />';
}
?>
:p hopelijk sla ik de plank niet volledig mis zoals wel vaker het geval is.




