Loading:


    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.



    Napisz Artyku³

    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\">&#171; 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 &#187;</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


      • 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