Autor | Zpráva | ||
---|---|---|---|
Raider Profil |
#1 · Zasláno: 28. 12. 2005, 16:06:33
Mám knihu návštev (index.php) - príspevky z nej ukladám do databázy (tabuľka kniha), každý príspevok ma svoje vlastné ID. Vedel by mi niekto poradiť, akým spôsobom spraviť stránkovanie na hlavnej stránke index.php tak, aby mi vždy na začiatku ukazovalo napr. 10 najnovších príspevkov a ostatné by bolo možné listovať (predchádzajúce,nasledujúce;..2,3,4..) ?
|
||
jozob Profil |
#2 · Zasláno: 28. 12. 2005, 16:22:58
V skripte použiť niečo takéto:
<?php Možno som niekde spravil chybu... Je to len hrubý návrh "z brucha"... Uprav si to podľa potreby... |
||
Hugo Profil |
#3 · Zasláno: 28. 12. 2005, 16:23:00
Na konec dotazu přidej
ORDER BY ID DESC LIMIT 0,10 Další strana bude ORDER BY ID DESC LIMIT 10,10 atd. |
||
jozob Profil |
#4 · Zasláno: 28. 12. 2005, 16:23:40
Ak niečomu nerozumieš, napíš...
|
||
jozob Profil |
#5 · Zasláno: 28. 12. 2005, 16:24:53 · Upravil/a: jozob
Ešte doplním:
Je to to isté ako napísal Hugo, akurát ja som Ti rozpísal základnú štruktúru toho skriptu... |
||
Falcon16 Profil |
#6 · Zasláno: 28. 12. 2005, 22:40:24
Kedze som to robil nenidavno, aj dnes, tak tu je moj vyplod.
define ("poc_na_stranu", 15); include "./incfile/mysqlconnect.php"; $dotaz = MySql_Query( "SELECT COUNT(*) AS cnt FROM guest" , $spojenie ); $vysledok = MySql_Fetch_Array($dotaz); $cnt = $vysledok["cnt"]; if ( !isset($_GET["page"]) ) {$page = 1;} else {$page = $_GET["page"];} if ($cnt != 0) { if ( $cnt % poc_na_stranu == 0 ) { $poc_stran = $cnt / poc_na_stranu; $poc_stran = floor($poc_stran); } ELSE { $poc_stran = $cnt / poc_na_stranu; $poc_stran = floor($poc_stran); $poc_stran++; } } $od = ($page - 1) * poc_na_stranu ; $do = poc_na_stranu; if ($poc_stran > 1) { for ( $i=1 ; $i <= $poc_stran ; $i++ ) { if ( $i == 1 || $i == 2 || $i == 3 || $i == $poc_stran-2 || $i == $poc_stran-1 || $i == $poc_stran || $i == $page || $i-1 == $page || $i+1 == $page ) { if ($i == $page) { echo " <B>[$i]</B> "; $medzera = false; } ELSE { echo " <A href=\"forum.php?page=$i\">$i</A> "; $medzera = false; } } else { if ($medzera == false) { echo ".."; $medzera = true; } } } } Inak ak niekto nepochopil, nevypisuju odkazy na stranky dalsia-predchadzajuca, ale prve tri, posledne tri , aktualna stranka, stranka pred nou a stranka za nou. Este mam u seba pridane, ze sa da prejst cez form select na hociktoru stranku |
||
jozob Profil |
#7 · Zasláno: 29. 12. 2005, 07:46:37 · Upravil/a: jozob
Falcon16
Malá pripomienka... Tento zápis je IMHO zbytočný: if ( $cnt % poc_na_stranu == 0 ) Na čo zaokrúhľuješ číslo, ktoré má po celočíselnom delení zvyšok 0? A prečo používaš floor a potom inkrementuješ zaokrúlené číslo? Ten istý efekt má funkcia ceil... A podmienka je tam úplne zbytočná, presne to isté sa dá zapísať takto (a ušetríš pár riadkov): $poc_stran = $cnt / poc_na_stranu; Je to len taká pripomienka k dokonalosti :-) |
||
Raider Profil |
#8 · Zasláno: 29. 12. 2005, 16:25:26 · Upravil/a: Raider
Stránkovanie sa mi podarilo spraviť podľa toho vzoru od Falcona 16. Diki moc všetkým, už som tomu trochu porozumel
|
||
Anonymní Profil * |
#9 · Zasláno: 30. 12. 2005, 21:36:22
tu je jeden skvely kod
<? define ("ROWS", 50); if (!isset($_GET["celkem"])) //pokud nevíme, kolik bude záznamů tak to zjistíme... { $vysledek=mysql_query("select count(*) as pocet from psc"); $zaznam=mysql_fetch_array($vysledek); $celkem=$zaznam["pocet"]; } else { $celkem=$_GET["celkem"]; } if ($celkem>ROWS) { if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"]; $vysledek=mysql_query("select * from psc"." limit ".($od-1).", ".ROWS); echo "Záznamů: ".$od."-"; echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem; echo " z celkem $celkem "; //začátek - vytvoř odkaz pouze pokud nejsme na začátku if ($od==1) echo "Začátek | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=1\">Začátek</a>  ;| "; //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS if ($od<ROWS) echo "Předchozí | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Pře dchozí</a> | "; //další - vytvoř, pouze pokud nejsme v posledních ROWS if ($od+ROWS>$celkem) echo "Následující | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Nás ledující</a> | "; //poslední - to je posledních (zbytek po dělení ROWS) záznamů if ($od>$celkem-ROWS) echo "Konec <BR>"; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($celkem-$celkem%R OWS+1)."\">Konec</a><BR>"; } ?> |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0