Autor Zpráva
lrztnn
Profil *
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 *
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 *
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 "&hellip;";
  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 " &hellip; ";
  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>";
}
?>
solta
Profil
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 }?>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0