Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: php/mysql/html table borderin käyttö hukassa

sprawl [12.03.2006 16:53:28]

#

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.

Olga [12.03.2006 17:33:20]

#

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.

sprawl [12.03.2006 18:24:49]

#

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..

sprawl [15.03.2006 14:27:37]

#

Eipä näytään ketään taas innostavan :p

ajv [15.03.2006 14:33:56]

#

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ä?

sprawl [15.03.2006 22:17:07]

#

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>';
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta