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: Poziom 6 Punktów: 172
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 |
Zend Framework 3. Developer's Guide |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles of: JAVA, PHP, C++, Pyth, JavaScript and so on..