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: 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


      • 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-2025 v.1.5 | design: diviXdesign & rainbowcolors