21. marts 2007 - 14:32Der er
16 kommentarer og 1 løsning
udprint af mysql query
Hej Eksperter
Efter et query: $query = "SELECT DATE(timeStamp) AS dato, COUNT(timeStamp) AS antal FROM tntDemolished GROUP BY DATE(timeStamp)"; ...har jeg en array med dato, antal som jeg printer på en lang liste. Men, dage med antal 0 bliver klart nok ikke printet. Jeg forestiller mig en forløkke i php som også printer manglende dage med antal 0.
Ja, det gør jeg. F.eks.: 01-01-07, 1 02-01-07, 3 03-01-07, 2 05-01-07, 3 Med while($a = mysql_fetch_row($result)) print... udskriver jeg så resultatet. Problemet er, at 04-01-07 ikke bliver printet - fordi den ikke er repræsenteret i array'et. Jeg ville gerne have at også 04-01-07, 0 blev printet. Det kunne være, tænkte jeg, med en lidt mere advanceret for-løkke der udskriver, eller et nyt query (men det tror jeg ville et meget tungt query)
Egentlig kan du se her www.gun.dk/statistics (gun er mit ekspiriment website) Den blå graf viser antallet af "eksploderede tanks i TNTspillet" ud fra en tabel hvor hver række, timeStamp(datetime), players(tinyint), ip(varchar(20)) repræsenterer en eksploderet tank. Hver søjle er en dag, højden viser antal eksploderede tanks. Dage hvor ingen spiller, er der ingen rækker, og derfor mangler der en søjle med højden 0. Grafen er derfor "falsk", men du forstår problemet?
Måske du kan bruge denne kode til at komme videre med?
<?php //http://www.eksperten.dk/spm/769257
$startDato = mktime(0,0,0, 1, 1,2001); //MÅNED, DAG og ÅR (lad 0,0,0 stå) $slutDato = mktime(0,0,0,12,31,2003); //MÅNED, DAG og ÅR (lad 0,0,0 stå) $enDag = 60*60*24; //SEKUNDER * MINUTTER * TIMER = 1 DAG
He he..så fik jeg lige kigget lidt på det igen, det er altså lidt svært når man ikke kan teste (sidder på arbejde), og der er vist noget koks, men nu er jeg kommet frem til dette....
print '<table class="statistic" cellspacing="0" cellpadding="0"><tr class="header"><td>TNT (unfinished)</td></tr>'; print '<tr class="columnnames"><td>Tanks demolished from xx-xx-xx to xx-xx-xx</td></tr>'; $query = "SELECT DATE(timeStamp) AS date, COUNT(timeStamp) AS demolished FROM tntDemolished GROUP BY DATE(timeStamp)"; $result = mysql_query($query, $conn);
Beklager, det tog lang tid. Jeg glemte fuldstændigt projektet, da jeg fik travlt med noget andet. MEN, nu virker det! det kan ses i funktion på www.gun.dk/statistics (den blå graf). Tak for hjælpen begge to. Løsningen blev ikke helt som foreslået, men noget i den retning (jeg er ikke superkoder så det var det jeg kunne få til at virke)
Man må vel sige at det er Johan O var tættest på løsningen, så pointene er vel dine. Vil du ikke ligge et svar? Mvh. Mads
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.