Totaalprijs berkenen
Ik heb een bestelsysteem gemaakt, en wil de totaalprijs graag berekenen.
ik heb ik de database voor de prijs 2 velden:
prijs (hele euro's)
centen (het aantal centen).
Nu wil ik graag van alle prijzen en centen het totaal berekenen.
het enigste probleem is dat als ik ze gewoon optel, en de bedragen bijvoorbeeld zijn:
€50,50
€50,70
€50,10
het totaal wordt:
€150,130
hoe kan ik nu van de 150,130 maken:
160,30
bedankt alvast...
dit heb ik maar werkt niet... hij telt de centen er niet bij
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
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
<?PHP
ob_start();
echo "
<table width='100%' cellpadding='1' cellspacing='15'><td width='100%'><table width='100%' cellpadding='0' cellspacing='0' style='border: 1px solid #7E8070'>
<td height='30' bgcolor='#C9CCC0' style='border-top: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;'>
";
echo "<table width='100%' border='0' cellspacing='5' cellpadding='0' style='border-bottom: 1px solid #000000'>
<tr>
<td width='25%'>Foto:</td>
<td width='55%'>Artikel:</td>
<td width='20%'>Prijs:</td>
</tr>
</table></td>
</table></td></table>";
echo"<table width='100%' cellpadding='1' cellspacing='15'><td width='100%'><table width='100%' cellpadding='0' cellspacing='0' style='border: 1px solid #7E8070'>
<td height='30' bgcolor='#C9CCC0' style='border-top: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;'>
";
$bestaan_b = mysql_query("SELECT * from cms_bestellingen WHERE uid='".$_COOKIE['id']."'")or die(mysql_error());
while ($bestelling = mysql_fetch_assoc($bestaan_b)) {
$bestaan_c = mysql_query("SELECT * from cms_producten WHERE id='".$bestelling['product_id']."'")or die(mysql_error());
while ($product = mysql_fetch_assoc($bestaan_c)) {
echo "<center><table width='100%' border='0' cellspacing='5' cellpadding='0' style='border-bottom: 1px solid #000000'>
<tr>
<td width='25%'><div style=\"background-image:url(watermerk.php?image=images/producten/".$product['foto1']."); background-position:center; width:150px; height:80px;border: 1px solid #000000;\"></div></td>
<td width='55%'><b><a href='index.php?pagina=producten/details.php&id=".$product['id']."&cat=".$product['categorie']."titel=".$product['type']."'><font color='#000000'><u>".ucfirst($product['type'])."</u></font></a></b><br>".ucfirst($product['merk'])."</td>
<td width='20%'>€ ".$bestelling['prijs'].",".$bestelling['centen']."</td>
</table></center>";
$totaalbedrag += $bestelling['prijs'];
$totaalcenten += $bestelling['centen'];
}
}
echo"<div align='right'>";
$totaal = round($totaalbedrag).",".round($totaalcenten)."";
echo round($totaal , 2);
echo"</div></td>
</table></td></table>";
ob_end_flush();
?>
ob_start();
echo "
<table width='100%' cellpadding='1' cellspacing='15'><td width='100%'><table width='100%' cellpadding='0' cellspacing='0' style='border: 1px solid #7E8070'>
<td height='30' bgcolor='#C9CCC0' style='border-top: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;'>
";
echo "<table width='100%' border='0' cellspacing='5' cellpadding='0' style='border-bottom: 1px solid #000000'>
<tr>
<td width='25%'>Foto:</td>
<td width='55%'>Artikel:</td>
<td width='20%'>Prijs:</td>
</tr>
</table></td>
</table></td></table>";
echo"<table width='100%' cellpadding='1' cellspacing='15'><td width='100%'><table width='100%' cellpadding='0' cellspacing='0' style='border: 1px solid #7E8070'>
<td height='30' bgcolor='#C9CCC0' style='border-top: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;'>
";
$bestaan_b = mysql_query("SELECT * from cms_bestellingen WHERE uid='".$_COOKIE['id']."'")or die(mysql_error());
while ($bestelling = mysql_fetch_assoc($bestaan_b)) {
$bestaan_c = mysql_query("SELECT * from cms_producten WHERE id='".$bestelling['product_id']."'")or die(mysql_error());
while ($product = mysql_fetch_assoc($bestaan_c)) {
echo "<center><table width='100%' border='0' cellspacing='5' cellpadding='0' style='border-bottom: 1px solid #000000'>
<tr>
<td width='25%'><div style=\"background-image:url(watermerk.php?image=images/producten/".$product['foto1']."); background-position:center; width:150px; height:80px;border: 1px solid #000000;\"></div></td>
<td width='55%'><b><a href='index.php?pagina=producten/details.php&id=".$product['id']."&cat=".$product['categorie']."titel=".$product['type']."'><font color='#000000'><u>".ucfirst($product['type'])."</u></font></a></b><br>".ucfirst($product['merk'])."</td>
<td width='20%'>€ ".$bestelling['prijs'].",".$bestelling['centen']."</td>
</table></center>";
$totaalbedrag += $bestelling['prijs'];
$totaalcenten += $bestelling['centen'];
}
}
echo"<div align='right'>";
$totaal = round($totaalbedrag).",".round($totaalcenten)."";
echo round($totaal , 2);
echo"</div></td>
</table></td></table>";
ob_end_flush();
?>
1) waarom werk je in vredesnaam met 2 velden. is een niet voldoende (mysql kan prima met floats werken.)
2) je kunt mysql ook gewoon laten optellen:
en de bedragen kunnen ook 24,95 zijn...
als ik met 2 velden werk kan ik ze ook laten sorteren op prijs... anders niet -> dat werkt niet met 1 veld en comma's (volgens mij - > mij lukt het niet)
kenzo schreef op 22.09.2007 15:51:
de bedragen bijvoorbeeld zijn:
€50,50
€50,70
€50,10
het totaal wordt:
€150,130
hoe kan ik nu van de 150,130 maken:
160,30
€50,50
€50,70
€50,10
het totaal wordt:
€150,130
hoe kan ik nu van de 150,130 maken:
160,30
Ik kan welliswaar niet goed hoofdrekenen, maar ik ben wel goed met de rekenmachine. Waarom wil je 160,30 krijgen in plaats van 151,30 die het is?
Voor de rest ben ik het met hierboven eens :-)
Edit:
kenzo schreef op 22.09.2007 16:00:
maar dat werkt niet met comma's
en de bedragen kunnen ook 24,95 zijn...
als ik met 2 velden werk kan ik ze ook laten sorteren op prijs... anders niet -> dat werkt niet met 1 veld en comma's (volgens mij - > mij lukt het niet)
en de bedragen kunnen ook 24,95 zijn...
als ik met 2 velden werk kan ik ze ook laten sorteren op prijs... anders niet -> dat werkt niet met 1 veld en comma's (volgens mij - > mij lukt het niet)
Waarom zou dat niet met een komma werken? Je kunt ze wel sorteren op asc en desc. Dat van hieronder was ik vergeten :-(
Een getal werkt nooit met komma's maar altijd met punten. Als jij getallen hebt met komma's dan heb je een probleem en moet je eerst die getallen omzetten naar 'echte' getallen.
dus als ik punten pak ipv comma's werkt het wel?
ik heb nu een totaal van 2999.1
maar hoe krijg ik dat nu 2999.10 (zonder er gewoon een nul achter te plakken, want het kan ook bijvoorbeeld 2999.95 worden...)
of moet ik dat zo laten staan?
heb het al!
http://php.jakaree.com/manual/nl/function.sprintf.php
Gewijzigd op 01/01/1970 01:00:00 door Frank -