Miten saan jokaiseen vieraskirjani viestiin järjestysnumeron siten, että vanhin viesti on nro.1?
Jos viestit ovat jollain tavalla taulukossa, array_reverse-funktiosta voisi olla hyötyä, jos siis haluat kääntää taulukon järjestyksen. Alkiot on kuitenkin numeroitu aloitettaen nollasta.
Jos käytät MySQL:llää, käytä seuraavaa komentoa (Mutta laita viestitaulukkosi nimi "viestit" sanan tilalle):
ALTER TABLE `viestit` ADD COLUMN `numero` INT(11) auto_increment PRIMARY KEY
Taisit ymmärtää väärin. Haluaisin että vieraskirjan osassa jossa kaikki voivat lukea vieraskirjaa, näkyisi viestin järjestysnumero.
Sinun täytyy ensin jotenkin selvittää, kuinka monta viestiä vieraskirjassa on yhteensä. Laita tämä luku muuttujaan, tulosta se joka viestin yhteydessä ja vähennä aina yhdellä. Jos vieraskirjassa on sivutus, on homma hieman vaikeampi.
makeuu kirjoitti:
Jos jokaisen viestin tiedot on laitettu yhdelle riville niin käytä tätä:
$rivi = count("tiedosto"); - 1;
Eihän tuossa ole mitään järkeä :)
Tuo count ei ole välttämätön muuta kuin viestien yhteenlaskemiseksi.
Homma hoituu myös suunilleen tähän tapaan:
$tulostetaan=file("etsi.txt"); $tulostetaan=array_reverse($tulostetaan); $rivit=count($tulostetaan); $nro=0; echo "<table width=\"640\">"; for ($i = 0; $i <= $rivit; $i++) // tulostetaan { $nro++; print "<tr><td valign=\"top\" align=\"left\">$nro</td><td valign=top>$tulostetaan[$i]</td></tr>"; } echo "</table>";
Edit: Paitsi että numerojärjestys menee väärinpäin. Sen kun vielä saa kääntymään ylösalasin!
Sehän onnistuu, kun laittaa tuonne print:iin näin:
print "<tr><td valign=\"top\" align=\"left\">".$rivit-$nro."</td><td valign=top>$tulostetaan[$i]</td></tr>";
Tempfile kirjoitti:
Sehän onnistuu, kun laittaa tuonne print:iin näin:
print "<tr><td valign=\"top\" align=\"left\">".$rivit-$nro."</td><td valign=top>$tulostetaan[$i]</td></tr>";
Pieni testaus osoitti, että näin toimii paremmin:
$r=$rivit-$nro; print "<tr><td valign=\"top\" align=\"left\">".$r."</td><td valign=top>$tulostetaan[$i]</td></tr>";
edit; ja tuo $nro++ vasta for-looppiin tuon tulostuksen jälkeen
Turha käyttää mitään $nro-muuttujaa, jos for-loopin $i ajaa saman asian, eikö ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.