Autor Zpráva
pavelskop
Profil *
Zdravím, používám toto stránkování:
$PZS = 2; // počet záznamů na stránku
$str = 1;    // první strana
if(isset($_GET["str"]) && $_GET["str"] > 0) {$str = $_GET["str"];} 
$start = ($str - 1) * $PZS;
$query = "SELECT * FROM `novinky` ORDER BY `id` DESC ";
$pocetVysledku = mysql_num_rows(mysql_query($query));

$query .= " LIMIT $PZS OFFSET $start";
$mysql = mysql_query($query);
while($result = mysql_fetch_array($mysql)) {  
////novinka
}

if ($pocetVysledku>$PZS)  {
// počet stránek
$pocetStran = (($pocetVysledku % $PZS)> 0) ? (int)($pocetVysledku / $PZS) + 1 : $pocetVysledku / $PZS;    
echo     "<br class='clear'>";
echo     "<center><b>Stránka $str z $pocetStran</b></center>";
echo "<div id='tnt_pagination' >";
if (!isset($_GET["str"]) or ($_GET["str"])==1 or ($_GET["str"])==2)	{echo "<span class='disabled_tnt_pagination'>&lt;&lt;První</span>";} else {echo "<a href='novinky&str=1'>&lt;&lt;První</a>";      }
if (!isset($_GET["str"]) or ($_GET["str"])==1)	{echo "<span class='disabled_tnt_pagination'>&lt;Předchozí</span>";} else {echo "<a href='novinky&str=".($str> 1 ? $str - 1 : "1")."'>&lt;Předchozí</a>";      }

 // výpis odkazů na stránky

for ($i = 1; $i <= $pocetStran; $i++) {
    if ($i != $str) {
        echo "<a href='novinky&str=".$i."'>".$i."</a>";
    } else { // aktuální strana
        echo "<span class='active_tnt_link'>".$i."</span>";
    }
 }
if (($_GET["str"])==$pocetStran or $pocetStran==1)	{echo "<span class='disabled_tnt_pagination'>Další&gt;</span>";} else {echo "	<a href='novinky&str=".(($str <$pocetStran) ? $str + 1 : $pocetStran) ."'>Další&gt;</a>"; 
}$predposledni = $pocetStran-1;
if (($_GET["str"])==$predposledni or ($_GET["str"])==$pocetStran or $pocetStran==1)	{echo "<span class='disabled_tnt_pagination'>Poslední&gt;&gt;</span>";} else {echo "<a href='novinky&str=$pocetStran'>Poslední&gt;&gt;</a>";      }
echo "</div>";
}  
else {}


Bohužel už mám moc stránek a nevejde se to do řádku, proto bych se chtěl zeptat, jak udělat pokročilejší stránkování, to znamená:


<< První < Předchozí - 3 - 4 - |5| - 6 - 7 - Další > Poslední >>
Radovan789
Profil *
Nejjednoduší je šáhnout po hotovém řešení (OOP), stačí si vybrat:

http://blog.jakubmaly.cz/programovani/php/strankovani-v-php-a-mysql-pohodlne-a-univerzalne.aspx
http://mike.treba.cz/pokrocile-strankovani-php/
Alphard
Profil
V tom cyklu, který vypisuje stránky, stačí přidat podmínku
if ($i + $interval > $str && $i - $interval  < $str)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0