![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem. Otoz probuje zrobic bardzo prosty kod paginacji wynikow ale cos nie za bardzo on dziala, siedze nad tym od wczoraj i dalej klapa. Wyswietla sie tylko 1 strona(domyslna) - przy kolejnych stronach smienna $_GET['strona'] sie powieksza ale nie przeklada sie to na wyswietlenie nastepnych wynikow.
Oto kod:
Zalezy mi na takim efekcie zeby na stronie domyslnej 0 czy tam 1 wyciagane byly dane wedlug
a na reszcie stron wedlug:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Sprawdź nieujemność i czy jest liczbą, a potem puść moim skryptem autorskim (IMG:style_emoticons/default/smile.gif)
Mój gotowiec robi pełnego paginatora, który na bank nie wyjedzie poza stronę, bo w przypadku 40 podstron nie zrobi 40 linków (IMG:style_emoticons/default/winksmiley.jpg)
Dlaczego tak a nie inaczej? Bo w ten sposób łatwo się generuje linki SEO w moim wypadku (IMG:style_emoticons/default/smile.gif) $where = 'artykuły-o-programowaniu' a skrypt dokłada resztę i ostatecznie moge uzyskać link artykuły-o-programowaniu,4.html Przy czym manipulując wartością startową i warunkiem wykonania w pętli: ustalam sobie "szerokość" ewentualnego paginowania od mojej strony. W tym wypadku będę miał widoczne +/- 3 strony po obu od aktualnej, oprócz "Następna", "Poprzednia". Do tego od 2 podstrony mam link "Pierwsza", a do przedostatniej strony włącznie mam widoczny link "Ostatnia" (IMG:style_emoticons/default/smile.gif) By było weselej całość sobie styluję i ustawiam na aktualnej stronie klasę CSS chosen i całość bloczku ładnie do div o id "pagin" który sobie styluję wedle woli. Po prostu gotowiec na funkcję Paginator. Wystarczy jako parametr podać string z linkiem, liczbę wszystkich rekordów, liczbę rekordów na stronie i otrzymujemy w wynik string jeśli wrzucimy to do zmiennej a nie jako echo. Do tego skrypt nie wyświetla paginatora niepotrzebnie, gdyż dla 1 strony wyników nie uruchamia się nawet. W efekcie będąc na stronie 4 spośród 5 możliwych paginator wygląda tak (zależnie od stylu oczywiście jeszcze (IMG:style_emoticons/default/smile.gif) ): Pierwsza Poprzednia 1 2 3 4 5 Następna Ostatnia Na ostatniej tak: Pierwsza Poprzednia 2 3 4 5 Na pierwszej tak: 1 2 3 4 Następna Ostatnia Czyli idealnie tak, jak paginator ma się zachowywać (IMG:style_emoticons/default/smile.gif) Nie generuje głupot i stron ujemnych a linki są poprawne (IMG:style_emoticons/default/smile.gif) Dostosuj go sobie do własnych potrzeb zmieniając tylko w zasadzie linki w znacznikach A i będzie Ci hulało jak ta lala. Nie będziesz się musiał niczym przejmować poza wywołaniem mysql z parametrami $page i $per_page, czyli Weź i sobie przetestuj (IMG:style_emoticons/default/smile.gif) Tu masz screen z poglądowego widoku strona 4/5 (IMG:style_emoticons/default/smile.gif) (IMG:http://img10.imageshack.us/img10/8928/selectionn.png) Ten post edytował thek 24.08.2009, 20:31:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod działa! tylko mam mały problem, jaką wartość powinna mieć $page domyślnie ? bo jak daje 0 to na 1 stronie nie ma nic dopiero na drugiej jest a na 3 mam juz 2x więcej wpisów niż jest ustalone. A z kolei jak dam domyślnie 1 to na 1 stronie mam 2 rekordy (nr 2 i nr 3, a nie nr 1 i nr2) a na drugiej stronie mam 2xwiecej wpisów niz jest ustalone.
Kod na początku taki dopisałem:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
polecam jakąś lekturę (na upartego manuala). skrypt nie należy do trudnych, wręcz przeciwnie. także jeszcze raz polecam lekturę o php, a przede wszystkim dobrze obmyśl sprawę. 50% sukcesu to doskonały pomysł (obmyślony w każdym calu)!
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki jeszcze raz thek ! problem rozwiązany.
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Tak to jest po 8 godzinach siedzenia w kodzie w pracy, że się kiełbasi (IMG:style_emoticons/default/winksmiley.jpg) To poniżej jest prawidłowe i tylko to popraw by kod zadziałał (IMG:style_emoticons/default/smile.gif)
Złe po prostu w limicie dałem zmienne, w końcu masz mieć $per_page rekordów począwszy od rekordu $strona*$per_page. Zaraz poprawię też w poście wyżej. Ten post edytował thek 24.08.2009, 20:36:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:20 |