Avatar billede jjdk Nybegynder
13. januar 2006 - 09:23 Der er 9 kommentarer og
2 løsninger

Hente tal i Mysql og regne på dem

Hej.
Jeg henter nogle poster fra Mysql, og ønsker at sammenlægge feltet "km".

Min forespørgsel ser sådan her ud:

$res = mysql_query("SELECT * FROM koersel_tabel WHERE udbetalt = '' ORDER BY dato", $con)
Avatar billede hmortensen Nybegynder
13. januar 2006 - 09:45 #1
Du kan bruge SUM() i mySQL:

"SELECT SUM(km) FROM koersel_tabel WHERE udbetalt = '' ORDER BY dato ASC"
Avatar billede jjdk Nybegynder
13. januar 2006 - 10:03 #2
Vil det sige, at jeg skal have 2 forespørgsler - eksempelvis sådan her:
$res = mysql_query("SELECT * FROM koersel_tabel WHERE udbetalt = '' ORDER BY dato", $con);
$km_ialt = mysql_query("SELECT SUM(km) FROM koersel_tabel WHERE udbetalt = '' ORDER BY dato", $con);
Print $km_ialt;

Det er nok ikke rigtigt, da det ikke virker?
Avatar billede showsource Seniormester
13. januar 2006 - 11:22 #3
Du kan godt gøre det i en query
SELECT feltnavn, feltnavn2, SUM(km) as km_ialt WHERE udbetalt = ''

men ellers,

print mysql_result($km_ialt, 0);
Avatar billede wetdog Nybegynder
13. januar 2006 - 12:46 #4
du kan også i din PHP kode:

while($row = mysql_fetch_array($res)) {
  $km += $row['km'];
}

så vil summen ligge i variablen $km
Avatar billede jjdk Nybegynder
13. januar 2006 - 14:28 #5
Jeg skal lige være med.
Kan jeg have 2 forespørgsler, som vist i min kode ovenfor. Det kan jeg nok ikke, da det ikke virker?
I min oprindelige forespørgsel får jeg i forvejen trukket "km"-felterne ud. Er det så nødvendigt med flere forespørgsler. Skal I se hele koden?
Avatar billede wetdog Nybegynder
13. januar 2006 - 14:35 #6
mit forslag vil virke på din oprindelige SQL
Avatar billede jjdk Nybegynder
13. januar 2006 - 15:21 #7
Ok, men hvor skal jeg sætte det ind: Du får lige koden:

<?php
//connecte til databasen
$con=mysql_connect("localhost","vardeborg","xxxx");
mysql_select_db("vardeborgdk",$con);
$res = mysql_query("SELECT * FROM koersel_tabel WHERE udbetalt = '' ORDER BY dato", $con);

Print "<p><b><font face='Verdana' size='5'>Kørsel, som ikke er sendt til udbetaling</font></b></p>";

Print "Klik her, hvis du ønsker det udbetalt (Der skal poppe et vindue op, hvor vi det skal bekræftes)"<br>;

Print "<table border='1' cellpadding='0' cellspacing='0' width='1050'>";

//Overskrift til skema
print "<tr>";
print "<td><font face='Arial' size='2'></td>";
print "<td><font face='Arial' size='2'><b>Dato:</td>";
print "<td><font face='Arial' size='2'><b>Formål:</td>";
print "<td><font face='Arial' size='2'><b>Til:</td>";
print "<td><font face='Arial' size='2'><b>Fra:</td>";
print "<td><font face='Arial' size='2'><b>Km:</td></b>";
print "</tr>";

//Hver anden linje skrives med anden baggrundsfarve
$gray = true;
while($row = mysql_fetch_array($res)) {
    if($gray) {
        print "<tr bgcolor='#EEEEEE'>\n";
    } else        
        print "<tr>\n";
    }
    $gray = !$gray;

//Dato ændres fra MySQL-format til dd-mm-åååå
$dag = substr($row["dato"],8,2);
$måned = substr($row["dato"],5,2);
$year = substr($row["dato"],0,4);
$rettet_dato = $dag."-".$måned."-".$year;

print "<td><a href=\email\koersel_slet_post.php?id=" .$row[ID] . ">slet</a></td>";
print "<td><font face='Arial' size='2'>".$rettet_dato ."</td>";
print "<td><font face='Arial' size='2'>".$row["formal"] ."</td>";
print "<td><font face='Arial' size='2'>".$row["destin_fra"] ."</td>";
print "<td><font face='Arial' size='2'>".$row["destin_til"] ."</td>";
print "<td><font face='Arial' size='2'>".$row["km"] ."</td>";
}
print "</tr></table></font>";
mysql_close($con);

?>
Avatar billede showsource Seniormester
13. januar 2006 - 15:55 #8
$gray = true;
$km = 0;
while($row = mysql_fetch_array($res)) {
$km_ialt += $row['km'];


// altandet i din while

}

efter din while, har du så $km_ialt som samlet antal km.
Avatar billede jjdk Nybegynder
14. januar 2006 - 00:00 #9
Så virker det efter hensigten. Jeg takker for jeres kommentarer. Jeg giver point til Showsource og Wetdog, da de begge bidrog til en løsning, som jeg kunne forstå og finde ud af. Sender I et svar.
Avatar billede wetdog Nybegynder
14. januar 2006 - 15:24 #10
værsgod
Avatar billede showsource Seniormester
15. januar 2006 - 16:54 #11
ok
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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