Podział wyników na strony PHP i MySQL
Przedstawianie wyników z zapytania w postaci długiej listy było by bardzo nie ciekawe dlatego stosuje się podział na strony skrypt poniżej dzieli wyniki zwrócone z zapytania na strony z wynikami gdzie $count określa ilość rekordów na stronie.
Listing
<?php
//Połączenie z mysql i wybranie bazy
$link = mysql_connect('localhost','user','passwd');
mysql_select_db('contacts',$link);
//Domyślne wartości, odpowiednio liczby rekordów na strone i przesunięcia
$count=25;
$offset=0;
//Pobranie danych z $_GET jezsli ustawione
if(isset($_GET['count']))$count = $_GET['count'];
if(isset($_GET['offset']))$offset = $count*$_GET['offset']; //numer strony
//Pobranie liczby rekordów
$sql = 'Select count(*) from contacts';
$result = mysql_query($sql,$link);
$r = mysql_fetch_array($result);
//Liczba stron, użycie ceil - zaokrąglenie w górę, w celu zapewnienia, że żadna strona się nie straci
$pages = ceil($r[0]/$count);
//Pobranie odpowieniej paczki
$sql = 'Select * from contacts Limit '.$count.' offset '.$offset.';';
$result = mysql_query($sql,$link);
//Początek tabeli
echo '<table><tr><th>Imie i nazwisko</th><th>Telefon</th><th>Mail</th></tr>';
//Pętla po wszystkich rekordach
while(($row=mysql_fetch_array($result))!=NULL){
echo '<tr><td>'.$row['name'].'</td><td>'.$row['phone']. '</td><td>'.$row['email'].'</td></tr>';
}
echo '</table>';
//Pętla po stronach
for($i=0;$i<$pages;$i++){
//jeśli obecna strona, nie twórz linku do strony
if($i*$count==$offset){
echo ' '.$i.' ';
}else{
echo '<a href="index.php?count='.$count.'&offset='.$i.'"> '.$i.' </a>';
}
}
?>
//Połączenie z mysql i wybranie bazy
$link = mysql_connect('localhost','user','passwd');
mysql_select_db('contacts',$link);
//Domyślne wartości, odpowiednio liczby rekordów na strone i przesunięcia
$count=25;
$offset=0;
//Pobranie danych z $_GET jezsli ustawione
if(isset($_GET['count']))$count = $_GET['count'];
if(isset($_GET['offset']))$offset = $count*$_GET['offset']; //numer strony
//Pobranie liczby rekordów
$sql = 'Select count(*) from contacts';
$result = mysql_query($sql,$link);
$r = mysql_fetch_array($result);
//Liczba stron, użycie ceil - zaokrąglenie w górę, w celu zapewnienia, że żadna strona się nie straci
$pages = ceil($r[0]/$count);
//Pobranie odpowieniej paczki
$sql = 'Select * from contacts Limit '.$count.' offset '.$offset.';';
$result = mysql_query($sql,$link);
//Początek tabeli
echo '<table><tr><th>Imie i nazwisko</th><th>Telefon</th><th>Mail</th></tr>';
//Pętla po wszystkich rekordach
while(($row=mysql_fetch_array($result))!=NULL){
echo '<tr><td>'.$row['name'].'</td><td>'.$row['phone']. '</td><td>'.$row['email'].'</td></tr>';
}
echo '</table>';
//Pętla po stronach
for($i=0;$i<$pages;$i++){
//jeśli obecna strona, nie twórz linku do strony
if($i*$count==$offset){
echo ' '.$i.' ';
}else{
echo '<a href="index.php?count='.$count.'&offset='.$i.'"> '.$i.' </a>';
}
}
?>
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
A czy dało by się tak zrobić aby pierwsza strona zaczynała się od 1 a nie od zera? Byłbym bardzo wdzięczny gdyby powiedział Pan jak to zrobić :)
autor: .... | 313 | 2009-07-05 16:33:25
Kod masz niżej
autor: Igor | 317 | 2009-07-05 17:28:06
Działa dzięki:)
autor: .... | 318 | 2009-07-05 23:16:57
A dało by się tak zrobić aby http://nazwastrony.pl/index.php?count=5&offset=0 aby pierwsza strona nie była równa offset = 0 tylko offset =1
autor: .... | 321 | 2009-07-09 01:53:17
Halo? odpowie mi ktoś na mój poprzedni komentarz?
autor: .... | 348 | 2009-07-15 15:41:04
Zamień to:
if(isset($_GET['offset']))$offset = $count*$_GET['offset']; //numer strony
Na to:
autor: Ktoś | 482 | 2009-09-02 19:53:28
Skrypt jest dobry.
autor: dj... | 5216 | 2010-02-17 19:28:58
cieniutko i dałem za to całego zeta
autor: vincent | 12357 | 2011-03-19 23:27:31
:: 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