Onderstaande code is een klein stukje uit een webshop.
Als er van $postban_een 2 producten zijn, dan moet er 0,50 cent van de prijs afgaan, zijn het er 3, gaat er 1,00 van de prijs af, bij 4 gaat er 1,50 af en bij 5 gaat er 2,00 van de prijs af. Maar zijn het er meer dan 5, dan telt hij telkens per 5 producten, er kan dus maximaal 2,00 van de prijs afgaan.
als je er dus 7 hebt, gaan er over de eerste 5 2,00 af en over die overige 2 gaat er 0,50 af. Hoe kan ik dit het beste doen? Dit geldt overigens alleen als sessie 'contractant' geset is, als dit niet het geval is, dan gaat er alleen als er 5 worden besteld 2,00 af per product, als er 10 zijn weer 2,00 per product etc...
Nu heb ik dit geprobeerd:
maar het is niet helemaal wat ik bedoelde, stel dat de prijs van 1 product 22,00 is dan moet het zo worden:
aantal prijs
2 40,00 //5 stuks dus bij elke moet er 2,00 af...
1 20,00
1 20,00
1 20,00
met het script wat ik probeerde is het zo:
aantal prijs
2 44,00
1 21,50
1 21,00
1 20,50
nog een voorbeeld van hoe het zou moeten worden:
aantal prijs
1 20,00 (prijs van product per stuk bij aantal=5 (valt binnen de eerste 5)
3 60,00 (3x 20,00) (valt binnen de eerste 5)
2 41,50 (20,00 + 21,50 (1 valt er binnen de eerste 5, de 2e valt binnen de volgende 'set')
1 21,50 (prijs van product per stuk bij aantal=2 (valt binnen de laatste 'set' van dus 2 stuks)
Als er van $postban_een 2 producten zijn, dan moet er 0,50 cent van de prijs afgaan, zijn het er 3, gaat er 1,00 van de prijs af, bij 4 gaat er 1,50 af en bij 5 gaat er 2,00 van de prijs af. Maar zijn het er meer dan 5, dan telt hij telkens per 5 producten, er kan dus maximaal 2,00 van de prijs afgaan.
als je er dus 7 hebt, gaan er over de eerste 5 2,00 af en over die overige 2 gaat er 0,50 af. Hoe kan ik dit het beste doen? Dit geldt overigens alleen als sessie 'contractant' geset is, als dit niet het geval is, dan gaat er alleen als er 5 worden besteld 2,00 af per product, als er 10 zijn weer 2,00 per product etc...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?php if($pro['postban'] == 1){ $postban_een++; } elseif($pro['postban'] == 2){ $postban_twee++; } elseif($pro['postban'] == 3){ $postban_drie++; } $soort=mysql_query("SELECT * FROM ".$tabel_soorten." WHERE id=".$or['kleur']); while($soor=mysql_fetch_assoc($soort)){ if($_SESSION['contractant'] == 1){ $prijs = $soor['prijs_contractant_een']; //hier zou dus berekening moeten komen? } else { $prijs = $soor['prijs_standaard_een']; } $maat = $soor['soort']; } ?> |
Nu heb ik dit geprobeerd:
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
| <?php if($haal['postban'] == 1){ $postban_een++; //posters } elseif($haal['postban'] == 2){ $postban_twee++; //banners } else{ $postban_drie++; //lijsten } $soort=mysql_query("SELECT * FROM ".$tabel_soorten." WHERE id=".$get['kleur']); while($soor=mysql_fetch_assoc($soort)){ if($_SESSION['contractant'] == 1){ $aantal = $postban_een; $aantalMaal2euro = floor($aantal / 5); $resterende = $aantal % 5; $korting = 2 * $aantalMaal2euro; $korting2 = ($resterende - 1) * .5; $korting2 = ($korting2 < 0 ) ? 0 : $korting2; $prijs = $soor['prijs_contractant_een']-$korting2; } else { $prijs = $soor['prijs_standaard_een']; } $maat = $soor['soort']; } ?> |
maar het is niet helemaal wat ik bedoelde, stel dat de prijs van 1 product 22,00 is dan moet het zo worden:
aantal prijs
2 40,00 //5 stuks dus bij elke moet er 2,00 af...
1 20,00
1 20,00
1 20,00
met het script wat ik probeerde is het zo:
aantal prijs
2 44,00
1 21,50
1 21,00
1 20,50
nog een voorbeeld van hoe het zou moeten worden:
aantal prijs
1 20,00 (prijs van product per stuk bij aantal=5 (valt binnen de eerste 5)
3 60,00 (3x 20,00) (valt binnen de eerste 5)
2 41,50 (20,00 + 21,50 (1 valt er binnen de eerste 5, de 2e valt binnen de volgende 'set')
1 21,50 (prijs van product per stuk bij aantal=2 (valt binnen de laatste 'set' van dus 2 stuks)
[ Voor 16% gewijzigd door robg1984 op 03-02-2006 18:55 ]