Compacte winkelwagen
Om één of andere reden wordt de prijs verdubbeld, en ik kan nergens vinden waarom dit gebeurd.
Als iemand me kan vertellen wat ik fout doe, of wat ik nog mis, dan zal ik heel erg blij zijn :).
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
if(count($articles) > 0){
if (count($articles) == 1) {
echo '<span class="wsaantal">Totaal '.count($articles).' product.</span>';
}else{
echo '<span class="wsaantal">Totaal '.count($articles).' producten.</span>';
}
$arraysize = count($articles);
$price = '';
$count = 0;
while ($count <= $arraysize) {
foreach($articles as $line) {
$price = $price + ($line['price']*$line['amount']);
$count++;
}
}
echo '<span class="wsprijs">Prijs: € '.number_format($price + (($price / 100) * $settings['tax']),2, ',', '').'</span><br />';
unset($price);
//echo '<span class="wsprijs">Prijs: € '.number_format(($line['price']*$line['amount']) + ($line['price'] * $line['amount']) / 100 * $settings['tax'],2, ',', '').'</span><br />';
?>
<div id="afrekenen">
<a href="/winkelwagen/">Naar product overzicht »</a>
</div>
<?php
}else{
echo '<li>Geen producten.</li>';
}
?>
if(count($articles) > 0){
if (count($articles) == 1) {
echo '<span class="wsaantal">Totaal '.count($articles).' product.</span>';
}else{
echo '<span class="wsaantal">Totaal '.count($articles).' producten.</span>';
}
$arraysize = count($articles);
$price = '';
$count = 0;
while ($count <= $arraysize) {
foreach($articles as $line) {
$price = $price + ($line['price']*$line['amount']);
$count++;
}
}
echo '<span class="wsprijs">Prijs: € '.number_format($price + (($price / 100) * $settings['tax']),2, ',', '').'</span><br />';
unset($price);
//echo '<span class="wsprijs">Prijs: € '.number_format(($line['price']*$line['amount']) + ($line['price'] * $line['amount']) / 100 * $settings['tax'],2, ',', '').'</span><br />';
?>
<div id="afrekenen">
<a href="/winkelwagen/">Naar product overzicht »</a>
</div>
<?php
}else{
echo '<li>Geen producten.</li>';
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function getOverview($id = 0) {
if($id !== 0) {
$result=$this->db->query("SELECT COALESCE(SUM(si.amount), 0) total_amount,
SUM(si.amount * IF(si.has_buy_out = 0, p.product_new_price, ROUND(p.product_new_price * 0.9, 2))) total_price
FROM shoppingbags s
JOIN shopbag_items si ON s.bag_id = si.bag_id
JOIN products p ON si.product_id = p.product_id
WHERE s.session_id = '" . $id . "'");
return $result->row();
}
return false;
}
function getOverview($id = 0) {
if($id !== 0) {
$result=$this->db->query("SELECT COALESCE(SUM(si.amount), 0) total_amount,
SUM(si.amount * IF(si.has_buy_out = 0, p.product_new_price, ROUND(p.product_new_price * 0.9, 2))) total_price
FROM shoppingbags s
JOIN shopbag_items si ON s.bag_id = si.bag_id
JOIN products p ON si.product_id = p.product_id
WHERE s.session_id = '" . $id . "'");
return $result->row();
}
return false;
}
Code (php)
gewoon worden:
en dan kan lijn 8 ook weg
Gewijzigd op 14/09/2013 20:42:02 door Frank Nietbelangrijk
Stel $arraysize = count($articles); geeft 1.
$count = 0;
Dan doet while ($count <= $arraysize) alles dus 2 keer.
1 Keer als $count = 0 en 1 keer als $count = 1.
Toevoeging op 15/09/2013 02:21:45:
Je wilt toch rekenen?
Dan gebruik je geen $price = ''; maar $price = 0;
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
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
<?php
// ga met functies werken.
function formatPrice($price)
{
return number_format($price, 2, ',', '');
}
function getTaxAmount($price, $tax)
{
return ($price / 100) * $tax;
}
function renderCart($articles)
{
$html = '';
$price = 0;
if(!count($articles))
return '<li>Geen producten.</li>';
if (count($articles) == 1)
$html .= '<span class="wsaantal">Totaal 1 product.</span>';
else
$html .= '<span class="wsaantal">Totaal '.count($articles).' producten.</span>';
foreach($articles as $line)
$price = $price + ($line['price'] * $line['amount']);
$tax = getTaxAmount($price, $settings['tax']);
$total = $price + $tax;
$html .= '<span class="wsprijs">Prijs: € '.formatPrice($total).'</span><br />';
$html .= '<div id="afrekenen"><a href="winkelwagen">Naar product overzicht »</a></div>';
return $html;
}
echo renderCart($articles);
?>
// ga met functies werken.
function formatPrice($price)
{
return number_format($price, 2, ',', '');
}
function getTaxAmount($price, $tax)
{
return ($price / 100) * $tax;
}
function renderCart($articles)
{
$html = '';
$price = 0;
if(!count($articles))
return '<li>Geen producten.</li>';
if (count($articles) == 1)
$html .= '<span class="wsaantal">Totaal 1 product.</span>';
else
$html .= '<span class="wsaantal">Totaal '.count($articles).' producten.</span>';
foreach($articles as $line)
$price = $price + ($line['price'] * $line['amount']);
$tax = getTaxAmount($price, $settings['tax']);
$total = $price + $tax;
$html .= '<span class="wsprijs">Prijs: € '.formatPrice($total).'</span><br />';
$html .= '<div id="afrekenen"><a href="winkelwagen">Naar product overzicht »</a></div>';
return $html;
}
echo renderCart($articles);
?>
Bedankt voor jullie hulp Frank en San! De code werkt nu gewoon zoals het hoort :).