Autor | Zpráva | ||
---|---|---|---|
piiiiiiiip Profil |
#1 · Zasláno: 22. 7. 2011, 17:11:17
Dobrý den,napsal jsem si kod na vypisování článků z db ale mám jich moc a potřebuju je stránkovat.Zkoušel sem co sem našel na google ale nic nefungovalo.
$komentare=mysql_result(mysql_query("SELECT COUNT(`id`) FROM `kom` "),0); $Vyber=mysql_query("SELECT `id`,`nazev`,`clanek`,`podpis`,`datum` FROM `clanky` ORDER BY id desc"); while($Vypis=mysql_fetch_array($Vyber)){ if($Vypis['nazev']){ echo " <div class='obr'></div><table class='xnovinky'><tr><td><h1><div style='text-align:right;'>{$Vypis['nazev']}</div></h1><hr /><div><p>{$Vypis['clanek']}<br /><br /><table width='100%' border='0'><tr><td><div class='jmeno'>".$Vypis['podpis']."</div></td><td align='right'><div class='datum'>".$Vypis['datum']."</div></td></tr></table><div class='koment'><p><a href='komik.php?id=".$Vypis['id']."&n'><h4>Komentare</h4></a></p></div></div></td></tr></table>"; mysql_query("UPDATE `minirs_clanky`"); }else{ echo "Je nam lito ale clanek zdrejme neexistuje."; } } |
||
Alphard Profil |
#2 · Zasláno: 22. 7. 2011, 17:52:14
Použil bych třeba http://doc.nette.org/cs/pagination, ušetří to trochu práce. Dodáte aktuální stránku, celkový počet, počet na stránku a třídá vám vrátí limit, offset a vše potřebné pro tvorbu odkazů.
Lze ji použít samostatně bez Nette, jen zrušte dědění od Object. Pokud to chcete sestavit sám, návod od Jakuba Vrány bude určitě funkční. |
||
piiiiiiiip Profil |
#3 · Zasláno: 23. 7. 2011, 19:00:05
Mám takový kod
require "db.php"; $max = "4"; $pocet=MySQL_Query("SELECT count(id) FROM clanky ORDER BY id DESC"); $ukaz_pocet=mysql_fetch_array($pocet); $str=Ceil($ukaz_pocet[0]/$max); $strana2 = $_GET['strana']; $strana = $strana2*$max; echo "<div class='textik'>Strana: "; for($i=0;$i<$str;$i++) { if($i == $strana2) { echo "<strong>".($i+1)."</strong> "; } else { echo " <a href='index.php?strana=".($i)."#str '>".($i+1)."</a> "; } } echo "</div>"; $pocet=mysql_query("SELECT `id`,`nazev`,`clanek`,`podpis`,`datum` FROM `clanky` ORDER BY id desc LIMIT $strana, $max", $spojeni); while($Vypis=mysql_fetch_array($pocet)){ if($Vypis['nazev']){ echo" <div class='obr'></div><table class='xnovinky'><tr><td><h1><div style='text-align:right;'>{$Vypis['nazev']}</div></h1><hr /><div><p>{$Vypis['clanek']}<br /><br /><table width='100%' border='0'><tr><td><div class='jmeno'>".$Vypis['podpis']."</div></td><td align='right'><div class='datum'>".$Vypis['datum']."</div></td></tr></table><div class='koment'><p><a href='komik.php?id=".$Vypis['id']."&n'><h4>Komentare</h4></a></p></div></div></td></tr></table>"; mysql_query("UPDATE `minirs_clanky`"); }else{ echo "Je nam lito ale clanek ktery hledate zdrejme neexistuje."; } } echo "<div class='textik'>Strana: "; for($i=0;$i<$str;$i++) { if($i == $strana2) { echo "<strong>".($i+1)."</strong> "; } else { echo " <a href='index.php?strana=".($i)."#str '>".($i+1)."</a> "; } } echo "</div>"; funguje to až nato že když jsem na indexu vypíše mi to Notice: Undefined index: strana in /home/users/kini/estargate.4fan.cz/web/index.php on line 31 |
||
piiiiiiiip Profil |
#4 · Zasláno: 24. 7. 2011, 11:15:37
Myslim že je to kvůli tomu že se nepočítá s tím že v adrese bude index.php místo index.php?strana=0#str ale nevim jak to opravit.
|
||
Jozin Profil |
#5 · Zasláno: 24. 7. 2011, 12:26:42 · Upravil/a: Jozin
piiiiiiiip:
Jak napsal piiiiiiiip je to tím, že $_GET['strana'] ještě neexistuje. Odchycení je jednoduché: <?php ... $strana2 = isset($_GET['strana']) ? ((int) $_GET['strana']) : 0; ... tuším, že to s 0 fungovat bude... když ne, tak místo 0 dát 1, ale myslím spíš 0. Navíc NOTICE je jen upozornění. Mělo by se na to dávat pozor, ale v produkčním režimu (na stránkách) je výpis notice vypnutý a tak tam toto nepůjde vidět. Ale já jsem zvyklí odchytávat i notice. EDIT: Ještě jsem dodělal přetypování na int. |
||
piiiiiiiip Profil |
#6 · Zasláno: 24. 7. 2011, 12:31:53
Dík.
|
||
Časová prodleva: 14 let
|
0