Tud írni valaki egy egyszerű lapozót? (PHP)
Hello!
Adott egy while ciklus. Híreket listáz ki szépen egymás alá. Azt szeretném, ha egyszerre csak 5 hír jelenjen meg.
(ok vágom, dobok egy "LIMIT 5"-t a lekérdezésem végére)
Az oldal aljára kellene egy kis lapozó... nem kellenek oldalszámok meg ilyesmik. Egyszerűen egy jobbra balra mutató nyíl.
Az első oldalon persze csak jobbra mutató, az utolsó oldalon meg persze csak balra mutatót.
Most jelenleg nem segítséget kérek hanem egy kis kódrészletet... bizonyára nem nehéz de nem terjed ki erre a tudásom. Próbáltam googlezni pager-ekre de azok bonyolultak. Nekem tényleg csak ez a jobbra 5 balra 5 kellene.
Remélem lesz aki megvág egy kóddal. köszönöm!
Csinálsz egy változót, amihez minden lapozásnál hozzáadsz 5-öt, majd a lekérdezésnél
"SELECT * FROM table LIMIT ".$valt.", 5"
Ez mindig 5 sort kivesz, majd, a következő lapnál növeled a valt-ot, vagy csökkented.
Az, hogy ne jelenítse meg, egy egyszerű if-el csinálhatod meg, ha $valt=0 akkor az előzőt nem jeleníted meg, ha $valt>mysql_num_rows($query)-5
Tehát egyenlő az összessel, akkor pedig a következőt nem jeleníted meg.
Innen már csak ujjgyakorlat ezt megírni.
montihun válasza:
Egy lehetséges megoldás, nem teszteltem, lehet benne hiba:
$currpage=$_GET['currpage'];
$item_per_page=50;
$max=mysql_num_rows(mysql_query("select ..."));
$maxpage=$max/$item_per_page;
if (intval($maxpage)!=$maxpage) { $maxpage=intval($maxpage); $maxpage++; }
if ($currpage<1) $currpage=1;
if ($currpage>$maxpage) $currpage=$maxpage;
$nextpage=$currpage++;
$prevpage=$currpage--;
if ($nextpage>$maxpage) $nextpage=$maxpage;
if ($prevpage<1) $prevpage=1;
$start=($currpage*$item_per_page)-50;
$q=mysql_query("select * from ... limit $start, $item_per_page");
while ($cucc=mysql_fetch_object($q))
{
...
}
if ($currpage>1) print "<a href=?currpage=$prevpage><-</a>
for ($x=1; $x<=$maxpage; $x++)
{
if ($x==$currpage) print $x." ";
else print "<a href=?currpage=$x>$x</a> ";
}
if ($currpage<$maxpage) print "<a href=?currpage=$nextpage>-></a> ";
Azzal meg el lehet játszani, hogy túl sok oldal esetén mennyit jelenítsen meg, és hogyan, én legutóbb úgy csináltam, hogy
<- 1 2 3 ... aktuális-3 akt-2 akt-1 akt akt+1 akt+2 akt+3 ... utolsó-3 ut-2 ut-1 ->
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!