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