Hallo zusammen,
für einen Warenkorb lese ich mittels eines 2-Tabellen-Joins aus einer mySQL-DB u.a. folgende relevanten Spalten:
- Anzahl d. Artikels (cart_items.qty)
- Stückpreis d. Artikels (MIN( article_prices.scale_price ) AS unitprice)
Lasse ich nun PHP die Summe dieser Position (lineAmount) berechnen und/oder den Gesamtpreis (cartAmount), bekomme ich keine Dezimalstellen angezeigt. Als 1/2-Workaround lasse ich nun schon in der Query lineAmount berechnen.
Habe es auch schon versucht mit doubleval versucht, brachte aber nichts.
Any ideas?
Code:
...
// Warenkorbwert & Artikelzähler werden initialisiert
$cartAmount = 0.0;
$cartCount = 0;
...
while ($row = @ mysql_fetch_array($result))
{
// Anzahl der Artikel im Warenkorb und den entsprechenden
// Euro-Wert des Warenkorbes festhalten
$unitprice = $row["unitprice"];
$qty = $row["qty"];
$cartCount += $qty;
$lineTotal = $row["lineAmount"];
$cartAmount += $lineTotal;
...
Habe die Variablen auch bereits mit var_dump "untersucht". Ergebnis:
Code:
qty: 1 article_id: xxx1 unitprice: 19.99 lineTotal: 19.99 cartAmount=19 cartCount: 1
var_dump(qty): string(1) "1"
var_dump(unitprice): string(5) "19.99"
var_dump(lineTotal): string(5) "19.99"
var_dump(cartCount): int(1)
var_dump(cartAmount): float(19) // int(19) wenn oben nicht oder nur als "0" definiert
var_dump(cartCount): int(1)
test array_sum:qty: 5 article_id: xxx2 unitprice: 78.67 lineTotal: 393.35 cartAmount=412 cartCount: 6
var_dump(qty): string(1) "5"
var_dump(unitprice): string(5) "78.67"
var_dump(lineTotal): string(6) "393.35"
var_dump(cartCount): int(6)
var_dump(cartAmount): float(412) // int(412) wenn oben nicht oder nur als "0" definiert
var_dump(cartCount): int(6)