http://www.luutnantti.com/sarjataulukko
Ei tuu yhtään mieleen mikä olisi vikana.
<?php
$yhteys = mysql_connect("", "", "");
mysql_select_db("luutnantticom");
$joukkueet = array();
class joukkue {
var $nimi;
var $voitot;
var $tasapelit;
var $tappiot;
var $tehdyt;
var $paastetyt;
var $ottelut;
var $pisteet;
var $maaliero;
function joukkue($nimi, $voitot, $tasapelit, $tappiot, $tehdyt, $paastetyt) {
$this->nimi = $nimi;
$this->voitot = $voitot;
$this->tasapelit = $tasapelit;
$this->tappiot = $tappiot;
$this->tehdyt = $tehdyt;
$this->paastetyt = $paastetyt;
$this->ottelut = ($this->voitot + $this->tasapelit + $this->tappiot);
$this->pisteet = (($this->voitot * 3) + $this->tasapelit);
$this->maaliero = ($this->tehdyt - $this->paastetyt);
}
function rivita() {
$rivi = "<tr><td>{$this->nimi}</td> <td>{$this->ottelut}</td>
<td>{$this->voitot}</td> <td>{$this->tasapelit}</td>
<td>{$this->tappiot}</td> <td>{$this->tehdyt}</td> <td>{$this->paastetyt}
</td><td>{$this->maaliero}</td> <td>{$this->pisteet}</td></tr>";
return $rivi;
}
}
while($rivi = mysql_fetch_assoc(mysql_query("SELECT * FROM joukkueet", $yhteys))) {
$joukkueet[] = new joukkue($rivi['nimi'], $rivi['voitot'], $rivi['tasapelit'], $rivi['tappiot'], $rivi['tehdyt'], $rivi['paastetyt']);
}
$i = 0;
while($joukkueet[$i]) {
$joukkueet[$i]->rivita();
$i++;
}
mysql_close($yhteys);
?><?php
$tulos = mysql_query("SELECT * FROM joukkueet", $yhteys) || die(mysql_error());
while (($rivi = mysql_fetch_assoc($tulos))) {
$joukkueet[] = ...;
}
foreach ($joukkueet as &$joukkue) {
echo $joukkue->rivita();
}
?>Olennaiset muutokset: mysql-kysely pois silmukasta, ettei sitä suoriteta joka kerta uudestaan, ja echo, jotta rivita-funktion palauttama teksti tulostetaan.
Suosittelen myös tuon rivita-funktion rivittämistä jotenkin nätisti, kiität vielä itseäsi siitä jonain päivänä...
No kylläpä taas kannatti koittaa mahd. lyhyttä koodia omaan käyttöön..
Ja tuo rivita-funktio ei ihan tuossa kuosissa ollut omassa koodissa :)
Kiitos taas kerran
Koodia voisi vielä yksinkertaistaa seuraavaan tapaan:
<?php
$tulos = mysql_query("SELECT * FROM joukkueet");
while ($rivi = mysql_fetch_assoc($tulos)) {
$nimi = $rivi['nimi'];
$voitot = $rivi['voitot'];
$tasapelit = $rivi['tasapelit'];
$tappiot = $rivi['tappiot'];
$tehdyt = $rivi['tehdyt'];
$paastetyt = $rivi['paastetyt'];
$ottelut = $voitot + $tasapelit + $tappiot;
$pisteet = 3 * $voitot + $tasapelit;
$maaliero = $tehdyt - $paastetyt;
echo "<tr><td>$nimi</td>
<td>$ottelut</td>
<td>$voitot</td>
<td>$tasapelit</td>
<td>$tappiot</td>
<td>$tehdyt</td>
<td>$paastetyt</td>
<td>$maaliero</td>
<td>$pisteet</td></tr>";
}
?>Aihe on jo aika vanha, joten et voi enää vastata siihen.