Monien yritysten jälkeen ei onnistu tietokannan tietojen sivutus järkevästi.... aiheesta oli joskus keskustelua:
https://www.ohjelmointiputka.net/koodit_nayta.
Olisko jollain hyviä ehdotuksia tai esimerkkejä?
<?php $riveja_sivu=10; if (!$page) { $page = 0; } $seuraava=$page+1; $edellinen=$page-1; $start = $page * $riveja_sivu; if ($viestit >$riveja_sivu) { $loput=$viestit-$start; if($loput <$riveja_sivu) { $end=$loput; // jos seuraavia viestejä on alle sivu-asetusten } else { $end=$riveja_sivu; } } if($viestit >$riveja_sivu) { $result = mysql_query("SELECT * FROM $taulu ORDER BY ID DESC LIMIT $start, $end"); } $yksi_sivu=$riveja_sivu+1; if($viestit <$yksi_sivu) { $result = mysql_query("SELECT * FROM $taulu ORDER BY ID DESC"); } if($viestit >$riveja_sivu) { echo "<tr><td><table width=\"600\"><tr><td width=\"50%\">"; if($_GET['sivu']) { echo "<a href=\"index.php?sivu=$edellinen\">Edellinen</a> "; } echo "</td><td width=\"50%\" align=\"right\">"; $etsi_viimeinen_sivu=$viestit-$start; if($etsi_viimeinen_sivu >$riveja_sivu) { // Jos seuraavia rivejä on, tulostetaan seuraava-linkki echo "<a href=\"index.php?sivu=$seuraava\">Seuraava</a>"; } echo "</td></tr></table></td></tr>"; } ?>
Tässä minun tekeleestäni "pätkä".
Edit: Olen vähän lyentänyt tuota. Jos siihen jäi ylimääräisiä sulkeita, ota ne pois.......... :)
Tässä myös itse käyttämäni sovellus juuri tuosta T.M.:n koodivinkistä:
<?php function sivuta($id,$max_id){ if($id > 0) { print " <A HREF=\"".$_SERVER['PHP_SELF']."\">«</A> \n"; print " <A HREF=\"".$_SERVER['PHP_SELF']."?start=".($id - 1)."\"><</A> \n"; }else{ print " « "; print " < "; } if($id < $max_id-1){ print " <A HREF=\"".$_SERVER['PHP_SELF']."?start=".($id + 1)."\">></A> \n"; print " <A HREF=\"".$_SERVER['PHP_SELF']."?start=".($max_id - 1)."\">»</A> \n"; }else{ print " > "; print " » "; } } //kuinka monta riviä/sivu näytetään $kynnys = 50; $riveja = mysql_num_rows(mysql_query("SELECT * FROM table")); if (!($id = $_GET["start"])) $id = 0; sivuta($id,ceil($riveja/$kynnys)); $kysely = "SELECT * FROM table LIMIT ".($id * $kynnys).", ".($kynnys - 1); $sql = mysql_query($kysely); //ja sitten vaan käyt tiedot läpi... ?>
Otin tuosta kaiken ylimääräisen pois, mutta toivottavasti idea selviää.
edit. Itsekkin aikoinani tappelin tuon myslin sivutuksen kanssa hirveillä purkkafunktioilla, kunnes yhtäkkiä kaikki selveni...
Juu kiitos Pekka Mansikalle näin aluksi. Aluksi oli hankala hoksata kaikkea kun sama muuttuja oli enkuksi ($page) ja suomeksi ($sivu).
Aihe on jo aika vanha, joten et voi enää vastata siihen.