Avatar billede konder Nybegynder
23. april 2008 - 09:25 Der er 11 kommentarer og
1 løsning

Funktionen SUM() og php

Jeg ville gerne kunne udtrække SUM() af kolonnen pris ved hver post i tabellen. Kan det mon lade sige gøre. Jeg kan v.h.a flg. få totalen ved den sidste post, men altså ikke ud fra hver enkelt. (det er noget jeg selv har bikset sammen så det er muligvis ikke helt ok.

$fores = mysql_query("SELECT DATE_FORMAT(dato1, '%d/%m') AS fdato, id, dato1, art, navn, butik, pris FROM kvit GROUP BY id ASC") or die(mysql_error());
while ($row=mysql_fetch_assoc($fores)){
echo "<tr>";
echo "<td>" . $row["id"] . "</td>";
echo "<td>" . $row["fdato"] . "</td>";
echo "<td>" . $row["art"] . "</td>";

echo "<td>" . $row["navn"] . "</td>";

echo "<td>" . $row["butik"] . "</td>";
echo "<td>" . $row["pris"] . "</td>";
}
$foresp = mysql_query("SELECT SUM(pris)AS total FROM kvit") or die(mysql_error());
while ($rows=mysql_fetch_assoc($foresp)){

echo "<td>&nbsp;" . $rows["total"] . "</td>";
echo  "</tr>";

echo "<tr><td colspan='7'>";
echo "<hr></td>";
echo "</tr>";
}
Avatar billede arne_v Ekspert
24. april 2008 - 04:57 #1
Var det ikke nemmere at summe op i PHP end i SQL ?
Avatar billede konder Nybegynder
24. april 2008 - 09:21 #2
Men som jeg forstår det skal man i PHP have et array af de forudgående poster 'pris' og tage summen fra. Og det kan jeg (som du sikkert ved) selvfølgelig ikke gennemskue.
Avatar billede arne_v Ekspert
25. april 2008 - 04:11 #3
Det burde ikke være nødvendigt med et array med alle værdier.

Bare have en akkumulator som du så viser for hver række.
Avatar billede konder Nybegynder
29. april 2008 - 06:52 #4
Troede akkumulator var noget med strøm.
Faktisk troede jeg at ovenstående ville virke på alle rækker.
Avatar billede arne_v Ekspert
29. april 2008 - 15:25 #5
:-)

noget a la:

$fores = mysql_query("SELECT DATE_FORMAT(dato1, '%d/%m') AS fdato, id, dato1, art, navn, butik, pris FROM kvit GROUP BY id ASC") or die(mysql_error());
$akku = 0;
while ($row=mysql_fetch_assoc($fores)){
echo "<tr>";
echo "<td>" . $row["id"] . "</td>";
echo "<td>" . $row["fdato"] . "</td>";
echo "<td>" . $row["art"] . "</td>";

echo "<td>" . $row["navn"] . "</td>";

echo "<td>" . $row["butik"] . "</td>";
echo "<td>" . $row["pris"] . "</td>";
$akku = $akku + $row["pris"];
echo "<td>$akku</td>";
}
Avatar billede konder Nybegynder
29. april 2008 - 19:35 #6
Det akkumulere point ;) Men jeg forstår ikke helt $akku = 0;
Et tomt felt + pris, men hvor blir kolonnen pris lagt sammen?
Avatar billede arne_v Ekspert
29. april 2008 - 19:47 #7
Jeg akkumulerer her:

$akku = $akku + $row["pris"];
Avatar billede konder Nybegynder
29. april 2008 - 19:53 #8
Betyder $akku da noget helt bestemt.
Avatar billede w13 Novice
29. april 2008 - 19:54 #9
Nej, det er bare det variablenavn, han har valgt at bruge.
Avatar billede konder Nybegynder
29. april 2008 - 20:03 #10
så forstår jeg ikke at det ikke kun er pris der bliver vist to gange. Og den tar jo hele kolonnen.
Avatar billede konder Nybegynder
30. april 2008 - 09:22 #11
men altså det virker jo.. så læg et svar.
Avatar billede arne_v Ekspert
01. maj 2008 - 01:48 #12
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester