Potreboval bych poradit se strankovanim v php, potrebuji aby se zobrazovalo prvni posledni stranka a stranka mezi (pokud je stranek hodne, nezobrazi se vsechny ale jen +- jedna nebo dve od aktualni) neco jako ma kasa.cz atd...... http://www.kasa.cz/pocitace-prislusenstvi/obchod/898/notebooky/?view=0&sort=5&page=4
Dik vsem.
Fórum › PHP
Strankovani
Najskor si vytiahnes z databazy pocet stlpcov, ten si rozdelis na "kusky"(pocet prispevkov ktore chces vypisat na jeden page) a tie kusky budes potom pomocou sql prikazu limit vytahovat .
Osetrenie ci je posledny prvy a pod. je zu iba hracka s podmienkami....
POchopil si ??? Kod hadam zvladnes ...
Suhlasim s dalaman-om, ale kedze sa mi dnes dobre vstavalo a mam dobru naladu:
1) musis si urcit, kolko poloziek na stranku chces a kolko odkazov na predchadzajuce a nasledujuce strany zobrazit. Napr.:
$per_page = 20; // pocet poloziek na stranu
$steps = 2; // chcem zobrazit odkazy na 2 predchadzajuce a 2 nasledujuce strany
2) potrebujes zistit, kolko poloziek mas dokopy a celkovy pocet stran
$total = MySQL_result(MySQL_query("select count(*) from ......"),0);
$last = ceil($total/$per_page); // pocet stran = cislo poslednej strany
3) zistis, ktoru stranu user chce zobrazit napr.
$page = IsSet($_REQUEST["page"]) ? (int)$_REQUEST["page"] : 1;
if ($page<1) $page = 1; // osetrenie, keby bola
elseif ($page>$last) $page = $last; // pozadovana stranka kapik mimo rozsah
4) spravis html kod liniek na jednotlive strany
if ($last>1)
{
$from = $page - $steps; if ($from<2) $from=2; // odkazy od ktorej strany budes vypisovat
$to = $page + $steps; if ($to>=$last) $to=$last-1; // odkazy do ktorej strany budes vypisovat
$pages_nav = '<div class="pages-navigation">';
$pages_nav.= '<span>Prejsť na stranu:</span> <a href="vypis.php"'.($page==1 ? ' class="selected"':'').'>prvú (1) </a> ';
if ($from>2) $pages_nav.="... "; // zobrazi 3 bodky za prvym linkom ak nenasleduje strana 2 ale niektora neskorsia
for($i=$from;$i<=$to;$i++)
$pages_nav.= "<a href=\"vypis.php?page=$i\"".($page==$i ? ' class="selected"':'')."> stranu $i </a> ";
if ($to<$last-1) $pages_nav.="... "; // ak za poslednou vypisanou stranou nenasleduje posledna
$pages_nav.= "<a href=\"vypis.php?page=$last\"".($page==$last ? ' class="selected"':'')."> poslednú ($last) </a>";
$pages_nav.= '</div>';
} else {
$pages_nav = '<div class="pages-navigation-empty"></div>'; // ak je len jedna strana
}
5) Vypis stranky
$limit_from = ($page-1)*$per_page+1; // prvy zaznam ktory sa ma vypisat
$table = MySQL_query("select * from.... LIMIT $limit_from, $per_page");
echo $pages_nav;
while($line=MySQL_fetch_array($table))
{
echo '<div class="polozka">'.$line[.....].'</div>';
}
echo $pages_nav;
MySQL_free_result($table);
Ehm, dufam ze v tom nebude vela chyb ;-)
To Prog.: No mne sa zrovna vtedy nevstavalo tak dobre :) Tak preto tak strucne. Ale inak je to presne ako som chcel.
Len odporucam pouzivat miest &_REQUEST priamo get alebo post => mate vacsi prehlad o povode premennej
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Stránkování — založil JMM
Strankovani — založil FrEnkLiN
Chyba v stránkování — založil martin
Chyba ve stránkování — založil Pepa
DATALIST STRANKOVANI — založil kironet
Moderátoři diskuze