select where variable array_sum

Hutzelweib

Grünschnabel
Habe schon eine Weile gegoogelt, komme aber zu keinem Ergebnis.
Problem:
Ich bastele einen kleinen Onlineshop für unser Tierheim. http://www.projetoproanimal.com.br/loja.php (wer ihn sehen will).
Die Leute klicken die Produkte an, die sie kaufen wollen und sollen dann auf einer zweiten Seite noch einmal sehen, welche Produkte es waren, Beschreibung, Preis, etc. Klappt bestens, aber ich bekomme den Gesamtpreis nicht hin.

if (isset($produto)) {
reset($produto);
foreach ($produto as $k => $wert) {
$sql = "SELECT SUM(preco) AS summe FROM produtos WHERE id = '$wert'";
$result = mysql_query($sql) OR die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
echo "<br><br>O preço total é R$ ".array_sum($row).",00";
}}}

So zeigt er die Einzelpreise an. array_sum($summe) oder $summe gibt nur Fehlermeldungen.

Bei

$soma = array($row['preco']);
echo "<br><br>O preço total &eacute;&nbsp;&nbsp;<font color=red size=+1><b>R$ ".array_sum($soma).",00</b></font>";

Kommt 0,00 bei raus

Ich stelle mich da extrem doof an, aber bitte helft mir trotzdem.

Liebe Grüsse aus dem Frühling,
Hutzelweib
 
Die MySQL-Funktion SUM brauchst du nur, wenn du mehrere Zeilen aus der Tabelle gleichzeitig auslesen möchtest. Du könntest jetzt also entweder eine Abfrage machen, die alle Artikel gleichzeitig auswählt und die Preise von der Datenbank zusammenzählen lassen oder die Preise einzeln auslesen und dann von PHP zusammenzählen lassen. Du versuchst irgendwie beides gleichzeitig und denkst dabei etwas zu kompliziert. Am einfachsten wäre wahrscheinlich die erste Variante:

PHP:
$sql = "SELECT SUM(preco) AS summe FROM produtos WHERE id IN (".implode(', ', $produto).")";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

echo "<br><br>O preço total é R$ ".$row['summe'].",00";
 
Danke für die schnelle Antwort!
Das IN war schon mal genial, kam ich nicht drauf (Kopp auf Tisch knallen), aber er meldet
"FUNCTION produtos.implode does not exist".

if (isset($produto)) {
reset($produto);
foreach ($produto as $k => $wert) {
$sql = "SELECT SUM(preco) AS summe FROM produtos WHERE id IN (implode(', ',$produto))";
$result = mysql_query($sql) OR die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
$soma = array($row['preco']);
echo "<br><br>O preço total &eacute;&nbsp;&nbsp;<font color=red size=+1><b>R$ ".array_sum($soma).",00</b></font>";

Ich will, dass aus den ausgewählten Zeilen (Checkbox) die Preise addiert werden, damit die Kunden wissen, was sie bezahlen müssen.
Man kann ALLE Preise addieren oder die wo die "id" kleiner als x ist usw, aber mit dem Array klappt es nicht.

Liebe Grüsse,
Hutzelweib
Ach, noch was, wie macht man den Code in soon Viereck rein?
 
Bitte vielmals um Entschuldigung, ich war zu dumm, den geposteten Code richtig einzusetzen. Nun ist alles in Ordnung

Danke:)
Liebe Grüsse,
Hutzelweib
 
Klick einfach mal auf Zitieren unter dem Beitrag, dann siehst du den Befehl. Das geht genauso auch mit [ code ] für Code ohne Einfärbung, [ code=html ], [ code=sql ] und bestimmt noch viele andere ;)

Die foreach- und while-Schleifen brauchst du jetzt nicht mehr, weil du ja schon in einer Abfrage die Summe aller Produkte berechnen lässt. Das Stück Code alleine reicht schon, um die Summe zu berechnen.
 
Zurück