![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
Sem tu brand new, więc proszę o wyrozumiałość ![]() Zwyczajowo czytam i męczę kody do skutku (php mniej). W tym przypadku rozłożyłam ręcę i proszę o pomoc lub zrozumiałą wskazówkę. Do rzeczy: Plik php ma niby proste zadanie wyświetlać rekordy z bazy mysql wg zadanych kryteriów i dzielić na strony. Wszystko wygląda dobrze tylko na stronie pierwszej. Na kolejnych baza pokazuje się "jak leci" bez ograniczeń "wcześniejszego filtrowania". Może to przez warunki? Jak mogłabym to poprawić? Będę przeogromnie wdzięczna za pomoc. I głębokie wejrzenie w kodowe oczy: [To tylko wycinki większego kodu] -----------------------------------------------------1 formularz----------------------------------
-----------------------------------------------------2 łączymy z bazą---------------------------------- łączymy z bazą
-----------------------------------------------------warunki do zapytania----------------------------------
-----------------------------------------------------zapytanie----------------------------------
tu się wyświetlają dane.... -----------------------------------------------------paginacja----------------------------------
Ten post edytował kredka 11.03.2011, 14:57:27 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Proszę wstawić BBCODE
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Nie bardzo rozumiem, co rozumiesz przez "wcześniejszego filtrowania"? Czy na pewno za każdym razem masz ustawiony $_REQUEST['page']?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przed zapytaniem mam $_REQUEST['page']
"wcześniejsze filtrowanie" = wybór kryteriów wyszukiwania w formularzu. Po kliknięciu w submit jest ok, po przejściu do kolejnej strony index.php?page=2 już nie. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
W warunku masz: jeżeli page jest numeryczny to rzutuj na int (i) jeżeli jest mniejszy od 1 to ustaw 1, jeżeli page nie jest numeryczny ustaw 1. Jeżeli tak miało być (a domyślam się, ze tak) to błąd leży w innym miejscu. Jeżeli page będzie równy np. 2 to $page = 2, a $start = 25; natomiast zapytanie:
Czy tak miało być ![]() Jeżeli page będzie równy np. 1 to $page = 1, a $start = 0; natomiast zapytanie:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Obawiam się, że nie w samej paginacji jest problem. Używałam różnych skryptów.
Problem pojawia się wówczas, gdy przechodzimy na kolejną dowolną stronę. Filtrowanie przestaje działać i wyświetla wyniki z całej bazy. Np. wybieram w formularzu: w1=budynki Na pierwszej stronie baza zwraca mi 50 wyników i pokazuje wyłącznie budynki. Wykonuje się ładnie zapytanie posiłkowane zmiennymi z formularza:
Przechodząc na stronę dowolnie kolejną widzę już ilość wszystkich wprowadzonych rekordów, np. 1000 i liczbę stron dla wyników z całej bazy. Wygląda to tak, jakby na stronach kolejnych wykonywało się zapytanie bez warunków zmiennych $w1a $bialya $czarnya:
bankzdjec.php?$w1a nie pomaga:) |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj w obydwu przypadkach wyświetli $page=1 lub jeśli zmiennej page nie będzie w łańcuchu ani nie będzie numeryczna cały ten warunek się nie wykona (nie widzę gdzie się kończy bo masz pourywany kod).
po za tym gzie inicjujesz zmienne $prev i $next ?
Ten post edytował amii 12.03.2011, 12:34:48 -------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
OK to jest chyba w porządku
Ale gdzie wysyłasz aktualny numer strony przez formularz ?
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
jw, skrypt numer strony wysyła metodą GET, a nie POST. Przechodzi w adresie.
Może inaczej: Jak byście ugryźli "małe allegro" lub cokolwiek podobnego? Po lewej formularz z kryterium wyboru (imputy, checkboxy, selecty), po prawej wyniki z podziałem na strony. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Stop. Zatrzymajmy się przy tym, że zapytanie jest źle budowane. Skoro wszystko działa, tylko dostajesz wszystkie pozycje z bazy, coś jest tam namieszane. Zrób echo dla $zapytanie kiedy $_GET['page'] !=1
![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Echo ze strony pierwszej "index.php":
Echo ze strony drugiej "index.php?page=2":
Mam nadzieję, że o to chodziło. Wszystko rozbija się o te $bialy, $czarny i $w1 z formularza lub $bialya, $czarnya i $w1a z warunków Ten post edytował kredka 12.03.2011, 16:20:17 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Limit 25, 25? Nie bardzo chyba rozumiem
![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Od 2 w kolejnych stronach wyświetlania - tak:) Przecież wiesz, że nie na jednej, bo tam jest po 25 rekordów
to tak po męsku ![]() Wchodzi sobie jegomość na stronę, wybiera śrubokręty czerwone w formularzu. Na pierwszej stronie po kliknięciu w selecta jawi mu się obraz pożądanych przez niego pięknych śrubokrętów czerwonych na kolejnych: śrubokręty, młotki, szminki, stringi, sukienki, pluszowe niedźwiedzie i tabletki na zdrowotnośc wszelaką ![]() Nie o to, nie o to ![]() |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Przechodząc na druga stronę nie wysyłasz formularza, tablica POST jest pusta i niema żadnych warunków.
Zapisz sobie kryteria wyszukiwania w SESSION lub przekazuj przez GET. -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
get nie działa ze względu na zastosowane w pliku warunki (na moje skromne "przedszkolne" oko)
o session i cookie myślałam jeszcze przed zalogowaniem na tym forum, ale zwyczajnie nie umiem tego powiązać wlaściwie. Niby sprawa prosta, ale w pliku mi je je i zdycha. Pomoże ktoś? Do diabła to podstawowa funcja wyświetlania zawartości tablicy w przystępnej dla użytkownika formie. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Po przesłaniu formularza zapisuj warunki w tablicy SESSION a następnie tam gdzie teraz sprawdzasz tablicę POST sprawdzasz SESSION.
-------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki PanieGuzol
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:01 |