Autor | Zpráva | ||
---|---|---|---|
napres123 Profil |
#1 · Zasláno: 27. 8. 2014, 16:39:40
Dobrý den, někde jsem našel jednoduché stránkování
tady je kod <?php $pocet_radku=mysql_query("SELECT count(*) as pocet FROM Dodavatele"); $pocet_radku=mysql_fetch_array($pocet_radku); $pocet_radku=$pocet_radku["pocet"]-147; $pocet_stran=ceil($pocet_stran=$pocet_radku/7); $i=0; for ($i = 1; $i <= $pocet_stran; $i++) { if ($i == 1 || $i == $pocet_stran || ($i >= $stranka - 3 && $i <= $stranka + 3)) if ($i == $stranka) echo "<b>$i</b>"; else echo "<a href=\"../dodavatele.php?stranka=$i\"> $i </a>"; } ?> ale há bych chtěl místo číselného odkazu na poslední a první místo udělat jak se dělá ">>" nevíte jak to upravit? |
||
DarkMeni Profil |
#2 · Zasláno: 27. 8. 2014, 19:26:26
Stačí smazat první část podmínky a nechat tam jen tu, aby prošli 3 nejbližší stránky kolem vybraný
A ty šipky dopsat před a po cyklu + ošetřit podmínkou, aby se tam neobjevilo třeba ( << 1 2 3 4 ), nebo jestli to nevadí (2 odkazy na 1. stránku), tak klidně i bez tý podmínky if($stranka > 3) echo "<a href=\"../dodavatele.php?stranka=1\">«</a>"; for ($i = 1; $i <= $pocet_stran; $i++) { if ($i >= $stranka - 3 && $i <= $stranka + 3) if ($i == $stranka) echo "<b>$i</b>"; else echo "<a href=\"../dodavatele.php?stranka=$i\"> $i </a>"; } if($stranka < ($pocet_stran - 3)) echo "<a href=\"../dodavatele.php?stranka=$pocet_stran\">»</a>"; Jestli ale máš 642 stran, tak ti tenhle algoritmus provede moc zbytečných instrukcí (průchodů cyklem), spíš by to chtělo vypočítat začátek a konec cyklu a místo 642 průchodů pak budeš mít třeba jen 7 |
||
napres123 Profil |
#3 · Zasláno: 27. 8. 2014, 19:43:09
DarkMeni:
děkuju moc, vůbec mně nenapadlo to dát před cyklus děkuju. záznamu je 42, při psaní jsem přeskočil číslu a neudělal mezeru. děkuju moc za pomoc |
||
Joker Profil |
#4 · Zasláno: 27. 8. 2014, 21:19:54
napres123:
V ukázce se nějak zpracuje 5 čísel stránek (maximálně to bude 9 čísel, kdybych byl někde uprostřed a zobrazovaly se ještě odkazy na předchozí tři stránky a první). Přijde mi nehospodárné kvůli tomu udělat 642 cyklů. Stačí přece cyklit od tří stránek před aktuální do tří stránek za aktuální a odkazy na první a poslední vypsat natvrdo. define("ZOBRAZ_STRAN", 3); define("VELIKOST_STRANY", 7); $pocet_radku=mysql_query("SELECT count(*) as pocet FROM Dodavatele"); $pocet_radku=mysql_fetch_assoc($pocet_radku); $pocet_radku=$pocet_radku["pocet"]-147; // tady nevím proč je zrovna 147 $pocet_stran=ceil($pocet_stran=$pocet_radku/VELIKOST_STRANY); // $i=0; zbytečné $od = ($stranka <= ZOBRAZ_STRAN) ? 1 : ($stranka - ZOBRAZ_STRAN); $do = (($stranka + ZOBRAZ_STRAN) >= $pocet_stran) ? $pocet_stran : ($stranka + ZOBRAZ_STRAN); if ($od > 1) echo "<a href=\"../dodavatele.php?stranka=1\">«</a>"; for ($i = $od; $i <= $do; $i++) { if ($i == $stranka) echo "<b>$i</b>"; else echo "<a href=\"../dodavatele.php?stranka=$i\"> $i </a>"; } if ($do < $pocet_stran) echo "<a href=\"../dodavatele.php?stranka=$pocet_stran\">»</a>"; ?> |
||
Časová prodleva: 10 let
|
0