Autor | Zpráva | ||
---|---|---|---|
lrztnn Profil * |
#1 · Zasláno: 15. 7. 2011, 21:54:03
Ahoj, hledal jsem jak blázen a nikde nemohu najít "inteligentní stránkování" typu:
1 2 3 4 5 ... 11 1 2 3 4 5 ... 11 1 2 3 4 5 ... 11 1 2 3 4 5 6 ... 11 1 2 3 4 5 6 7... 11 1 ... 4 5 6 7 8 ... 11 1 ... 5 6 7 8 9 10 11 Konec: 1 ... 7 8 9 10 11 Toto stránkování jsem viděl používat na fórech phpBB a docela se mi to líbí, máte ho někdo? Dospěl jsem akorát ke stránkování: 1 2 3 … 11 1 2 3 4 … 11 1 2 3 4 5 … 11 1 2 3 4 5 6 … 11 1 2 3 4 5 6 7 … 11 1 … 4 5 6 7 8 … 11 1 … 4 5 6 7 8 9 10 11 Konec: 1 … 9 10 11 A nevím jak na začátek přidat 4 5 a to samé na konci s 7 8. Má někdo kód? Byl by někdo ochoten to (do)vymyslet (kdybych poslal co mám)? |
||
okolojdouci Profil * |
#2 · Zasláno: 15. 7. 2011, 22:02:13
A kde máš problém? Jde jen o vyhodnocení počtu stránek a čísla stránky, která je zobrazená.
Ukaž co máš. |
||
lrztnn Profil * |
#3 · Zasláno: 15. 7. 2011, 22:35:31
Díky moc aspoň za odpověď, zasekl jsem se do moc podmínek. Tady by to mělo být ještě jakž takž přehledněji:
<?php //pripojeni k DB $count = mysql_query("SELECT id as max FROM zaznamy LIMIT 36"); if(mysql_num_rows($count) > 0) { //$count = mysql_fetch_object($count); //$max = $count->max; $max = mysql_num_rows($count); } define ("ON_PAGE", 5); $page = (empty($_GET["page"])) ? 1 : (int)$_GET["page"]; $by = (ON_PAGE * ($page - 1)); $articles = mysql_query("SELECT text FROM zaznamy ORDER BY jmeno asc LIMIT ".ON_PAGE." OFFSET ".$by); if(mysql_num_rows($articles) > 0) { while($article = mysql_fetch_object($articles)){ echo $article->text . "<br />"; } } $last = ceil($max / ON_PAGE); if($max > ON_PAGE){ if ($page > 3) echo " <a href='vypis.php?page=1'>1</a> "; if ($page > 5) echo "…"; if ($page == 5) echo "<a href='vypis.php?page=2'>2</a>"; //PREDCHOZI if($page > 0) for($i = 2; $i > 0; $i--) if(($page - $i) >= 1) echo " <a href='vypis.php?page=".($page-$i)."' style='color:# yellow'>".($page-$i)."</a> "; //AKTUAL if(($page - $i) >= 1) echo $page; //DALSI if($page < ($max / ON_PAGE)) for($i = 1; $i < 3; $i++) if(($page + $i) <= $last) echo " <a href='vypis.php?page=".($page+$i)."' style='color:# gray'>".($page+$i)."</a> "; if ($max>25 && $page<$last-4) echo " … "; if ($page==$last-4) echo "<a href='vypis.php?page=".($last-1)."'>".($last-1)."</a>"; if(($page + $i) <= $last) if($page < $last) echo " <a href='vypis.php?page=$last'>$last</a>"; } ?> |
||
Časová prodleva: 5 dní
|
|||
solta Profil |
#4 · Zasláno: 20. 7. 2011, 13:11:33
jestli to jeste potrebujes tak tady mas jesnu prasarnu
<?php $list=$_GET['list']; $pages=10; if($pages>0){?> <div id="list"> <table border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td valign="middle"><a href="<?php $filtrs=NULL; if($list>2)$filtrs="?list=".($list-1); echo $filtrs; ?>"><img src="/gfx/arrow_left.png" width="14" height="14" alt="Předhozí"></a></td> <?php $show_page=6; if ($list<=3)$i=1; if ($list>3)$i=$list-3; if ($list>=($pages-3))$pages-3; if ($list>4)echo "<td valign=\"middle\"><a href=\"/$page/\">1</a> ... </td>";//&commodity=$commodity while ($i<=$pages){ $filtrs=NULL; if($i>1)$filtrs="?list=$i";?> <td valign="middle"><a href="<?php echo "/$page/";if($filtrs<>NULL){echo $filtrs;}?>" <?php if ($list==$i){?>class="activ"<?php }?>><?php echo $i;?></a></td><?php if ($ciklu==$show_page)$i=$pages; $i++; $ciklu++; } if ($list<($pages-3)){?> <td valign="middle"> ... <a href="<?php echo "/$page/"; echo "?list=$pages";?>"><?php echo $pages ?></a></td><?php } ?> <td valign="middle"><a href="<?php echo "/$page/"; $filtrs=NULL; if($list<$pages-1)$filtrs="?list=".($list+1); else $filtrs="?list=$pages"; echo $filtrs; ?>"><img src="/gfx/arrow_right.png" width="14" height="14" alt="Další"></a></td> </tr> </table> </div> <?php }?> |
||
Časová prodleva: 13 let
|
0