Stronicowanie zapytań z SQL
Funkcja zamieszczona w tym artykule w ładny i przejrzysty sposób stronicuje wyniki z zapytania. Funkcję można dostosować do swoich wymagań, czyli ile ma wyświetlać stron, czy też ile ma być wyników na jednej stronie.
![]()
![]()
Funkcja działa na zasadzie, że najpierw trzeba zapytaniem do bazy sprawdzić ile jest wszystkich wyników, a dopiero potem poprzez zwróconą wartość przez funkcję wykonać ponownie zapytanie, aby wyświetlić mniejszą ilość wyników.
Listing
function paginacja($max_item, $item_page, $page_num, $skrypt, $page) {
$all_page = ceil($max_item/$item_page);
if($page > $all_page) { $page = $all_page; }
else if($page < 1) { $page = 1; }
if($all_page > 1) {
if($page > 1) { $start = $page-1; $pop = "<a href=\"".$skrypt."=$start\">« Poprzednia</a>"; }
else { $pop = ""; }
if($page <= $page_num) { $koniec = $page_num*2+1; }
else { $koniec = $page+$page_num; }
$star = $page-$page_num-1;
if($koniec > $all_page) { $koniec = $all_page; }
if($star < 0) { $star = 0; }
if($star > 0) { $pier = "|<a href=\"".$skrypt."=1\"> 1 </a>| ..."; }
else { $pier = ""; }
if($koniec < $all_page) { $ost = "... |<a href=\"".$skrypt."=$all_page\"> $all_page </a>|"; }
else { $ost = ""; }
for($i=$star; $i<$koniec; $i++) {
$pom = $i+1;
if($pom != $page) { $pasek .= "|<a href=\"".$skrypt."=$pom\"> "; }
else { $pasek .= "| <b>"; }
if($pom != $page) { $pasek .= "$pom </a>"; }
else { $pasek .= "$pom</b> "; }
if($i == $koniec-1) { $pasek .= "|"; }
}
if($page < $all_page) { $dalej = $page+1; $nas="<a href=\"".$skrypt."=$dalej\">Następna »</a>";}
else { $nas = ""; }
echo "<span style=\"font-size: 14px;\">$pop $pier $pasek $ost $nas</span>";
}
return ($page-1)*$item_page;
}
//Przykładowe użycie
$sql = mysql_query("SELECT COUNT(*) FROM `table_name`");
$ilosc_wynikow = mysql_num_rows($sql);
$ile_na_stronie = 100;
$ile_stron = 5;
$link_stronicowania = 'index.php?strona';
$limit_start = paginacja($ilosc_wynikow, $ile_na_stronie, $ile_stron, $link_stronicowania, $_GET['strona']);
$sql = mysql_query("SELECT * FROM `table_name` LIMIT $limit_start,$ile_na_stronie");
while($row = mysql_fetch_array($sql)) {
//kod
}
$all_page = ceil($max_item/$item_page);
if($page > $all_page) { $page = $all_page; }
else if($page < 1) { $page = 1; }
if($all_page > 1) {
if($page > 1) { $start = $page-1; $pop = "<a href=\"".$skrypt."=$start\">« Poprzednia</a>"; }
else { $pop = ""; }
if($page <= $page_num) { $koniec = $page_num*2+1; }
else { $koniec = $page+$page_num; }
$star = $page-$page_num-1;
if($koniec > $all_page) { $koniec = $all_page; }
if($star < 0) { $star = 0; }
if($star > 0) { $pier = "|<a href=\"".$skrypt."=1\"> 1 </a>| ..."; }
else { $pier = ""; }
if($koniec < $all_page) { $ost = "... |<a href=\"".$skrypt."=$all_page\"> $all_page </a>|"; }
else { $ost = ""; }
for($i=$star; $i<$koniec; $i++) {
$pom = $i+1;
if($pom != $page) { $pasek .= "|<a href=\"".$skrypt."=$pom\"> "; }
else { $pasek .= "| <b>"; }
if($pom != $page) { $pasek .= "$pom </a>"; }
else { $pasek .= "$pom</b> "; }
if($i == $koniec-1) { $pasek .= "|"; }
}
if($page < $all_page) { $dalej = $page+1; $nas="<a href=\"".$skrypt."=$dalej\">Następna »</a>";}
else { $nas = ""; }
echo "<span style=\"font-size: 14px;\">$pop $pier $pasek $ost $nas</span>";
}
return ($page-1)*$item_page;
}
//Przykładowe użycie
$sql = mysql_query("SELECT COUNT(*) FROM `table_name`");
$ilosc_wynikow = mysql_num_rows($sql);
$ile_na_stronie = 100;
$ile_stron = 5;
$link_stronicowania = 'index.php?strona';
$limit_start = paginacja($ilosc_wynikow, $ile_na_stronie, $ile_stron, $link_stronicowania, $_GET['strona']);
$sql = mysql_query("SELECT * FROM `table_name` LIMIT $limit_start,$ile_na_stronie");
while($row = mysql_fetch_array($sql)) {
//kod
}
Dodano przez: sebulek Ranga: 0 Punktów: 0
Komentarze użytkowników
Coś mi to nie działa w ogóle nie pokazuje ilości stron :(
autor: rioma1990 | 12801 | 2012-03-23 19:52:37
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno



