| 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: 12 let
|
|||
0