20. juli 2008 - 12:07Der er
8 kommentarer og 1 løsning
Mindre statestik system
Jeg har forsøgt at lave et mindre statestik system, idéen er at den skal samle dato'erne for sig, og så for hver dato smide en total pris under sidste indeværende dato.
Jeg kan dog ikke få det til at fungere som jeg havde forestillet mig. Jeg kan forestille mig jeg skal løbe dato'erne igennem for sig.
Nogle som har en idé om hvad der kan hjælpe?
$dato_cache; $dato_liste = mysql_query("SELECT * FROM tabel ORDER BY dato") or die(mysql_error()); while ($row = mysql_fetch_array($dato_liste)) { $dato_vis = $row["dato"];
$dato_vis = date('d-m-Y', strtotime($dato_vis));
if($dato_vis == $dato_cache) { echo "dato ".$dato_vis." Faktura ".$row["faktura"]." Pris ".$row["prize"]."<br/>"; } else { $query = "SELECT SUM(prize) FROM tabel WHERE dato='2008-07-17' GROUP BY dato";
$result = mysql_query($query) or die(mysql_error());
Som jeg læser spørgsmålet, så vil gubien kun have en total pris efter sidste pris for en given dato a la: dato 2008-07-01 Faktura xxxx Pris 100.00 dato 2008-07-01 Faktura xxxy Pris 200.00 dato 2008-07-01 Faktura xxxz Pris 500.00 Total pris 800.00
dato 2008-07-02 Faktura xxyx Pris 200.00 dato 2008-07-02 Faktura xxyy Pris 300.00 dato 2008-07-02 Faktura xxyz Pris 400.00 Total pris 900.00
Det er helt korrekt, men sidste totalpris mangler i dit eksempel, jeg kan forestille mig mna skal have den til at kører den while én gang mere for at få det sidste med
Du skal også have følgende med: $query = "SELECT SUM(prize) AS prize_sum FROM tabel WHERE dato='{$dato_cache}'"; $result = mysql_query($query) or die(mysql_error()); $row1 = mysql_fetch_assoc($result);
Den komplete kode vil være: $dato_cache = ''; $first = true; $dato_liste = mysql_query("SELECT * FROM tabel ORDER BY dato") or die(mysql_error()); while ($row = mysql_fetch_assoc($dato_liste)) { $dato_vis = date('Y-m-d', strtotime($row["dato"]));
if ($dato_vis == $dato_cache || $first) { echo "dato {$dato_vis} Faktura {$row["faktura"]} Pris {$row["prize"]}<br/>"; } else { $query = "SELECT SUM(prize) AS prize_sum FROM tabel WHERE dato='{$dato_cache}'"; $result = mysql_query($query) or die(mysql_error()); $row1 = mysql_fetch_assoc($result);
Men som du nu kan se, så er der en del redudant data. Du bør måske overveje at oprette et array, som bliver fyldt ud fra databasen og så til sidst udskrive dette. Det er i hvert fald en måde jeg godt kan lide at bruge.
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.