Nyt todella tarvitsen teidän viisaampien apua. Olen yrittänyt väsätä ja väsätä tuloslista-sivua, jossa näkyy koiran/koirien näyttelytuloksia. Mysql-haku onnistuu ihan ok, mutta ongelma on se, että sivulla on vuodet otsikkoina ja niiden alla ne tulokset eli esim:
Otsikon 2008 alla on vuoden 2008 tulokset, otsikon 2007 alla on vuoden 2007 tulokset. Tässä näkee miten ne ovat nyt staattisesti asetettu:
http://www.ipansivut.figgy.eu/tuloksia.html
Eli samalla tavalla pitäisi saada, mutta kaikki tulokset, kuvat ym eli koko sivun sisältö tulee mysql-tietokannasta. Järki ei pelaa niin, että tajuaisi oikein, että kuinka tämä pitäisi toteuttaa vaikkakin muutamia yrityksiä olen tehnyt. Pääasiassa olen kyllä saanut tulokset ym. tulostumaan ihan kuten pitää, mutta se on ongelma, että miten saan ne tulokset otsikoiden (vuodet) alle ilman, että pitää käyttäjän itse lisätä sivulle oikea mysql-kysely ja otsikko sen yläpuolelle.
Tietokannassa taulun osat on nimetty id (kasvaa automaattisesti), paivamaara (esim. 20.12.2008), missa (missä näyttelyssä), kuva (kuvan nimi), tulokset.
tässä tähän mennessä mitä itse olen osannut ja tajunnut:
$lauseke = "SELECT * FROM tuloksia"; $haku = mysql_query($lauseke); $rivmra = mysql_num_rows($haku); while($rivi = mysql_fetch_object($haku)) { $id = $rivi->id; $paivamaara = $rivi->paivamaara; $missa = $rivi->missa; $kuva = $rivi->kuva; $tulokset = $rivi->tuloksia; echo "<p class=\"keskitetty\">"; if(isset($kuva) && !empty($kuva)) { echo "<img src=\"kuvat/$kuva\" height=\"200\"><br><br>"; } echo $paivamaara . '<br>'; echo nl2br($missa) . '<br>'; echo nl2br($tulokset) . '<br><br>'; echo '</p>'; }
No eikös se periaatteessa mene niin että haetaan käänteisessä järjestyksessä ( kyselyyn mukaan ORDER BY paivamaara desc ) ja sitten loopissa missä tulostat nuo, niin tulostat vuosilukuotsikon aina, jos vuosiluku on muuttunut edellisestä.
Grez kirjoitti:
No eikös se periaatteessa mene niin että haetaan käänteisessä järjestyksessä ( kyselyyn mukaan ORDER BY paivamaara desc ) ja sitten loopissa missä tulostat nuo, niin tulostat vuosilukuotsikon aina, jos vuosiluku on muuttunut edellisestä.
Juu, mutta nimenomaan tämä vuosiluvun tulostus on ongelma.
Nyt tulostaa, mutta ei oikeaa vuotta vaan joka kohdassa on vuosi 2008 vaikka tuloksia on vuodelle 2006 saakka.
EDIT:
Taitaa toimia sittenkin.
EDIT 2:
Eipä toimi. Kaikki tulokset tulostaa vuoden 2008 alle.
Niin joo, tuo date() -funktio haluaa ajan unix timestamppina, eli sekuntteina epochista. Jos tietokannassa on tallennettu jossain muussa muodossa, niin se täytyisi ensin muuttaa unix timestampiksi (esim. mysql_ssä on muistaakseni unixtimestamp() funktio) tai sitten parsia se vuosi sieltä jollain muulla keinolla.
Eli pitäisi toimia kunhan vaan saat $rivivuosi -muuttujaan oikean vuosiluvun kullekin riville.
edit: ok sitten
PHP:n time()-funktiolla on tehty timestampit, jotka tallennetaan tietokantaan, mutta tämä onkin näköjään se ongelma. time()-funktiolle ei voi näköjään antaa päivämääriä vaan se tekee timestampin sen hetkisen ajan mukaan. Oma mokani siis...
Tässä voisi olla sopiva funktio sinulle:
https://www.php.net/mktime
Tosiaan. Kiitos Grezille ja recalle! mktime-funktion avulla sain tuon Grezin koodivinkin toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.