Minulla on pienoinen ongelma sivujen laittamisen kanssa....
Eli mulla on koodi mikä hakee tiedot txt tiedostosta.
if(!isset($_GET['start'])) $_GET['start'] = 0; $next = $_GET['start'] + $haksivu; $viestit = file("viestit.txt"); $viestit = array_reverse($viestit); $maara = count($viestit); for ($i = $_GET['start']; $i < $next; $i ++) { $sisalto = explode("|", $viestit[$i], 4); $nimi = $sisalto[0]; $email = $sisalto[1]; $aika = $sisalto[2]; $viesti = $sisalto[3];
ja sit tulee print ja sen sisäl tulosteet...
if ($maara > $haksivu) { $x = ($maara/$haksivu ); $r = round($x); $d = ($x-$r); if ($d>0){ $x = ($r+1);} else $x = round($x); for ($a=0; $a < $x; $a++) { $c = ($a*$haksivu); if ($start == $c) {print ("| $c");} else { print ("<a href=\"gb.php?start=$c$luku\">| $c </a>");} } }
Eli tuolla tavalla olen sitä yrittänyt tehdä mutta en kässää missä on vika. aina jos rivejä on vähemmän kuin mitä sivulle mahtuisi niin se tekee sinne sivulle viimeiseksi tyhjän printtauksen. otsikkaat ja kaikki näkyy paitti itse tietoa ei ole koska sitä ei ole olemassakaan..
Saisko apua ongelmaan.
mitä se heittää ilmoitukseksi?`Parse-erroria?
Ensiksi suosittelisin käyttämään kooditageja, selventää paljon asioita. Lue keskustelun ohjeesta lisää.
Koodissa ensimmäinen korjattava asia olisivat puuttuvat aaltosulut. Ainakin ensimmäisestä iffistä ja tuosta for-loopista niitä näkyy uupuvan.
En myöskään suosittelisi käyttämään $_GET['start']:ia suoraan, muuta tuo alku vaikka tällaiseksi:
if(isset($_GET['start']) && is_int($_GET['start'])){ $start = $_GET['start']; } else { $start = 0; }
Pitäisi olla hieman turvallisempi.
Tuossa ylläolevassa koodissa isset() funkkarin käyttö on turhaa, koska jos $_GET['start'] muuttujaa ei ole, tai se ei ole integer niin $start = $_GET['start']. Mutta jos se on integer niin $start = 0.
Kovin olet vaikeasti lähtenyt sivuttamaan. Olen itse käyttänyt tällaista, alunperin Nuclesin koodia:
<?php $tiedosto = file("viestit.txt"); $tiedosto = array_reverse($tiedosto); $max_index = count($tiedosto)-1; if (isset($_GET['fmark'])) { $start = $_GET['fmark']; // Seuraavat sivut $end = $_GET['fmark'] + 9; } else { $start = 0; //Eka-sivu $end = 9; } $up_start = $start + 10; // seuraavat=lisätään 10 riviä $down_start = $start - 10; // edelliset $max = $max_index + 1; echo "Viestejä yhteensä " . $max; echo "<TABLE BORDER=\"0\" ><TR>"; if ($max_index <= 9) { echo "<TD align=\"left\"></TD>"; echo "<TD align=\"right\"></TD></TR></TABLE>"; } elseif ($end < 10) { echo "<TD align=\"left\"></TD>"; echo '<TD align=\"right\"><a href=\"index.php?fmark=$up_start\">Edelliset 10</a></TD></TR></TABLE>"; } elseif (($end > 9) && ($max_index > $end)) { echo "<TD align=\"left\"><a href=\"index.php?fmark=$down_start\">Uudemmat 10</a></TD>"; echo "<TD align=\"right\"><a href=\"index.php?fmark=$up_start\">Edelliset 10</a></TD></TR></TABLE>"; } elseif ($max_index <= $end) { echo "<TD align=\"left\"><a href=\"index.php?fmark=$down_start\">Uudemmat 10</a></TD>"; echo "<TD align=\"right\"></TD></TR></TABLE>"; } echo "<br>"; if ($max_index != -1) // jos viestejä on vain yksi for($i=$start ; $i<=$end; $i++) // tulostaan viestit $startin ja $endin väliltä { $viesti = explode("|", $tiedosto[$i]); echo "<table>"; echo // Tulostetaan tähän if ($i == $max_index) break; } ?>
Voisinpa melkein sanoa samaa myös sinun koodillesi :)
Vilkaiseppas tätä:
https://www.ohjelmointiputka.net/koodit_nayta.
T.M. Tossa sun antamas linkissä niin missä muodos pitää olla ton filun sisältö? eli ton txt filun.
Ihan missä muodossa tahansa, tuo funktio sivuttaa taulukon alkioden määrän mukaan.
Koodivinkkini esimerkin mukaan tieto on riveittäin, eli esimerkiksi jokainen viesti omalla rivillään.
Aihe on jo aika vanha, joten et voi enää vastata siihen.