<?php //mysql yhteys... echo '<html><body><table border="1">'; //Tehdään SQL-kysely $kysely = mysql_query("SELECT DATE_FORMAT(varasto.pvm, '%d.%m.%Y') AS pvm, varasto.sarja, kayttaja.nimi FROM kayttaja LEFT JOIN varasto ON kayttaja.ID = varasto.kayttaja_ID WHERE kayttaja.nimi = 'noorak' ORDER BY varasto.pvm DESC"); //Alustetaan muuttujat $edellinen_pvm = ''; $sarjojen_summa = 0; $sarjojen_maara = 0; //Käydään SQL-kyselyn tulokset läpi while-silmukassa while ($vastaus = mysql_fetch_assoc($kysely)) { if ($vastaus['pvm'] != $edellinen_pvm) { //Aloitettiin uuden päivämäärän käsittely´ if (!isset($sarja_ka)) { $sarja_ka[] = $sarjojen_summa/$sarjojen_maara; // laitetaan muistiin saatu keskiarvo $ka_teksti = ""; } else { // lasketaan koko vuoden keskiarvo ennen tätä (eli edellistä) päivää $sum = 0; foreach ($sarja_ka as $n) $sum += $n; $ka_eilen = $sum / count($sarja_ka); $sarja_ka[] = $sarjojen_summa/$sarjojen_maara; // laitetaan muistiin saatu keskiarvo // lasketaan koko vuoden keskiarvo tämän päivän jälkeen $sum = 0; foreach ($sarja_ka as $n) $sum += $n; $ka_tanaan = $sum / count($sarja_ka); // ja ilmoitetaan erotus $ka_ero = $ka_tanaan - $ka_eilen; if ($ka_ero > 0) $ka_teksti = "(+".$ka_ero.")"; else $ka_teksti = "(".$ka_ero.")"; } if ($sarjojen_summa > 0) echo '<td>(keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).') '.$ka_teksti.'</td></tr>'; echo '<tr><td>'.$vastaus['pvm'].':</td>'; $sarjojen_summa = 0; //nollataan sarjojen summa $sarjojen_maara = 0; //nollataan sarjojen määrä } //Tulostetaan yksittäinen sarja, jos $sarjojen_maara on 0, tulostetaan päivän ensimmäistä sarjaa ja eteen ei tulosteta pilkkua. echo ($sarjojen_maara == 0) ? '<td>'.$vastaus['sarja'] : ', '.$vastaus['sarja'].''; $edellinen_pvm = $vastaus['pvm']; $sarjojen_summa += $vastaus['sarja']; //lisätään sarja päivän summaan $sarjojen_maara++; //lisätään päivän sarjojen määrälaskuria yhdellä } echo '</td><td>(keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).')</td></tr>'; echo '</table>'; echo '</body></html>'; ?>
Muutama ongelma olisi tuon koodin kanssa.
Pitäisi saada rajoitettua niin että se ei laske kuin ne tiedot mitkä löytyy kannasta. Eli nyt se hakee tiedot kannasta mutta tulostaa taulukon yläpuolelle erroria kun se yrittää laskea nollaa kun ei olekkaan enään tietoja kannassa.
Toinen ongelma on siinä kun se laskee keskiarvon muutoksen jotenkin väärin.
http://mekeilaajat.arkku.net/uusi/IiroK2.php
Tuossa osoitteessa on koodi käytössä tuollaisenaan. kuten huomaatte tiedot ei ihan pidä paikkansa.
Löytyykö ratkaisijaa ohjelmointiputkasta? =)
Aihe on jo aika vanha, joten et voi enää vastata siihen.