Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Olio-ohjelmointia

Hakoulinen [02.05.2008 17:13:51]

#

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

Metabolix [02.05.2008 18:34:47]

#

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

Hakoulinen [02.05.2008 22:49:54]

#

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

Antti Laaksonen [02.05.2008 23:16:46]

#

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>";
}
?>

Vastaus

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

Tietoa sivustosta