Loading:


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.



Napisz Artyku³

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>';
 }
 }
 ?>





Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
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


    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors