Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tulostaminen tietokannasta vuosien mukaan

Sebu [25.04.2007 12:39:46]

#

Elikkäs mitenköhän tällainen olisi järkevintä toteuttaa=

Eli tein mysql taulun, mihin lisätään menneet kilpailut (id, pvm, kisa, tulos, kommentti).

Nyt haluaisin tulostaa (php:lla) kisat järjestyksessä vuosien alle seuraavalla tavalla:

2007
kisa1
kisa2
kisa3

2006
kisa1
kisa2
kisa3

2005
kisa1
kisa2
kisa3
...jne.

Eli vuosiluvut haettaisiin automaattisesti taulusta niin pitkälle kun niitä on, eli tässä tapauksessa vuoteen 2001 ja siis aina kyseisen vuoden kisat vuoden alle.

Kiitos etukäteen.

EDIT: niin ja siis vuosiluvut haettaisiin tuosta pvm sarakkeesta.

El-Ejecutor [25.04.2007 13:21:16]

#

en oo vähään aikaan mihinkään koodin puuttunu lain, mutta tällä periaatteella vois pelittää:

$vuodet = mysql_query("SELECT vuosi FROM taulu");

for ($i=0; $i<mysql_num_rows($vuodet); $i++){
	$vuosi = mysql_result($vuodet,$i,0);
	$kilpailut = mysql_query("SELECT kentät FROM taulu WHERE vuosi = $vuosi");

	//tulostetaan $kilpailut-haun tulokset

	}

kayttaja-2791 [25.04.2007 13:54:53]

#

Eikös yhdelläkin haulla pärjätä. Selkeästihän kaikki kilpailut pitää hakea. Järjestetään ne vain vuoden/päivän mukaan.

<?php
$kilpailut = mysql_query("SELECT kisa, DATE_FORMAT(pvm, '%Y') AS vuosi FROM taulu ORDER BY pvm DESC");

while ($row = mysql_fetch_row($kilpailut)) {
  //Mikäli vuosi ei ole sama kuin edellinen vuosi, tulostetaan otsikko
  if ($row[1] != $vuosi) {
    echo "<h3>{$row[1]}</h3>";
  }
  echo $row[0]."<br />";
  //Tallennetaan edellinen vuosi uuteen kierrokseen vertailtavaksi
  $vuosi = row[1];
}
?>

Tai jotain, ehkä idea käy ilmi. En testannut koodia.

Lebe80 [25.04.2007 14:30:28]

#

Itse tehnyt useasti JTS:n tavalla. Eli vaikka tuleekin "pari" riviä ylimääräistä koodia php:lle, niin mielestäni se on silti paljon parempi kuin hakea hakujen jälkeen aina vaan uudestaan samantapainen kysely.

Sebu [25.04.2007 19:27:33]

#

Kiitokset kaikille. JTS:n koodi wörkkii ainakin kuin junan vessa.

Vastaus

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

Tietoa sivustosta