Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vieraskirjan viestien numerointi?

Sivun loppuun

Jyri [19.05.2004 22:12:47]

#

Miten saan jokaiseen vieraskirjani viestiin järjestysnumeron siten, että vanhin viesti on nro.1?

tkr7 [19.05.2004 22:50:04]

#

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.

LUEser [19.05.2004 22:52:26]

#

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

Jyri [19.05.2004 22:54:02]

#

Taisit ymmärtää väärin. Haluaisin että vieraskirjan osassa jossa kaikki voivat lukea vieraskirjaa, näkyisi viestin järjestysnumero.

Antti Laaksonen [19.05.2004 23:59:12]

#

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.

Olga [20.05.2004 12:40:21]

#

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ä :)

Tempfile [20.05.2004 13:06:32]

#

makeuu luultavasti tarkoitti jotain tällaista:

$rivit = count(file($tiedosto));

pistemies [20.05.2004 15:27:55]

#

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!

Tempfile [20.05.2004 18:01:48]

#

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

pistemies [20.05.2004 21:20:49]

#

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

ajv [21.05.2004 14:33:21]

#

Turha käyttää mitään $nro-muuttujaa, jos for-loopin $i ajaa saman asian, eikö ;)


Sivun alkuun

Vastaus

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

Tietoa sivustosta