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.