haluaisiko joku näyttää malliksi miten tähän mysqlin koodiin lisätään taulukko "ympärille" jotta tulostus olisi hienompi.
Itse koodi:
<?php $yhteys = mysql_connect("localhost", "sprawl", "ursamajor") or die(mysql_error()); mysql_select_db("sprawl_sprawl", $yhteys) or die("Tietokantaa ei löytynyt!"); //Tehdään SQL-kysely $kysely = mysql_query("SELECT varasto.pvm, varasto.sarja, kayttaja.nimi FROM kayttaja LEFT JOIN varasto ON kayttaja.ID = varasto.kayttaja_ID WHERE kayttaja.nimi = 'iirok' ORDER BY pvm DESC"); //korvaa varasto oikealla taulun nimellä, varasto3? //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 ($sarjojen_summa > 0) echo ' (keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).')<br /><br />'; echo $vastaus['pvm'].':'; $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) ? ' '.$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 ' (keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).')<br /><br />'; ?>
yksinkertaisiin kyselyihin kyllä olen saanut taulukot tehtyä mutta jostain syystä tämä ei oikeen luonnistu.
echo tällä hetkellä, esim.
2006-03-11: 172, 158, 136, 161, 167, 202, 156 (keskiarvo 164.57)
Olen yrittänyt saada tuota niin että päivämäärä on yhdessä sarakkeessa, sarjat seuraavassa ja keskiarvo viimeisessä, rivit lisääntuu aika ajoin tietokannassa.
Ennen silmukkaa tulostat aloittavan table-tagin, silmukan alussa aloittavan tr-tagin, jokaisen tulostettavan kentän ympärille td-tagit, silmukan loppuun lopettava tr-tagi ja silmukan jälkeen lopettava table-tagi.
echo '<html><body><table border="1"><tr>'; //Tehdään SQL-kysely $kysely = mysql_query("SELECT varasto.pvm, varasto.sarja, kayttaja.nimi FROM kayttaja LEFT JOIN varasto ON kayttaja.ID = varasto.kayttaja_ID WHERE kayttaja.nimi = 'iirok' ORDER BY pvm DESC"); //korvaa varasto oikealla taulun nimellä, varasto3? //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 ($sarjojen_summa > 0) echo '<td>(keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).')</td>'; echo '<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'].'</td>'; $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>(keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).')</td></tr>'; echo '</table>'; echo '</body></html>'; ?>
Tuolta puuttuu jostain välistä jotain koska tulee kaikki peräkkäin ja näyttää sarja sarakkeessa vain kaksi arvoa, loput arvot on peräkkäin ennen taulukkoa..
Eipä näytään ketään taas innostavan :p
No kyllähän Olga jo tuossa antoi aika selkeän ohjeen. Kiinnitä huomiota kohtaan <tr>-tagit. Ja jos ei taulukko tulostu, niin katso sitä html-lähdekoodia ja mieti mikä meni pieleen. Kait sentään osaat sen taulukon html:llä tehdä?
Juu, kyllä taulukon luonti onnistuu html:llä.. täytyypi huomenna käydä vielä tarkemmin läpi tuo koodi. Tai tässä jos joudan päättötyöntekemiseltä... =) (taitaa jäädä päättötyö taas toiseksi ohjelmoinnin kiinnostaessa enemmän)
edit: HMMM...
Mikäköhän siinä oli viimeksi niin vaikeeta, näinhän se toimii...:
echo '<html><body><table border="1"><tr>'; //Tehdään SQL-kysely $kysely = mysql_query("SELECT varasto.pvm, varasto.sarja, kayttaja.nimi FROM kayttaja LEFT JOIN varasto ON kayttaja.ID = varasto.kayttaja_ID WHERE kayttaja.nimi = 'iirok' ORDER BY pvm DESC"); //korvaa varasto oikealla taulun nimellä, varasto3? //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 ($sarjojen_summa > 0) echo '<td>(keskiarvo '.(round($sarjojen_summa/$sarjojen_maara, 2)).')</td></tr>'; echo '<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>'; ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.