![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki kod
Ale jak klikne następną strone to już nie ma wyników dlaczego ![]() Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 11 Pomógł: 6 Dołączył: 11.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Tokk 22.01.2010, 20:19:35 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zmieniłem ale nie pomogło...
Tzn. jest tak samo wyświetla pierwszych 5 wyników, ale gdy klikam na następną strone to już nie ma żadnych rekordów ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zacznijmy od tego:
Nie wyświetla Ci pierwszych pięciu rekordów, tylko 5 rekordów zaczynając od 6 i kończąc na 10, dlatego też powinno być:
Dziwi mnie też, że nie działa link, gdyż przed tym: nie ma inkrementacji wartości zmiennej $page(w tym przypadku jest ona taka sama jak w adresie) Ten post edytował Szeszek1992 22.01.2010, 20:44:11 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Po pierwsze to zdecyduj się czy pierwsza strona jest numerowana od 0 czy 1
![]() Jeśli zaczynać chcesz od strony pierwszej to musisz od wyników odejmować 1 bo pierwszą partią jaką poślesz do bazy będzie LIMIT 5, 5 czyli pobierz 5 rekordów począwszy od 5, a nie o to Ci chyba chodzi, tylko LIMIT 0, 5 ![]() Stąd konieczność zmiany lub jak radzi Szeszek dopiero przy zmiennej $od odejmować 1. No i wspomnianej strony Następna na o DWA większą (o jeden jeśli posłużysz się sposobem Szeszka), bo w końcu wcześniej zmniejszyłeś ją już o jeden ![]() Inna sprawa, że głupotą jest tak robić bo nie masz ogranicznika i możesz nawet sobie od 3 strony mieć wyniki puste, ale możesz przechodzić sobie na kolejne do usranej śmierci bo link Następna nadal będzie się zwiększał. Musisz zrobić ograniczenie, które wyeliminuje dodawanie tego linku gdy osiągniesz ostatnie rekordy tabeli. Ten post edytował thek 22.01.2010, 21:00:35 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dla ścisłości
http://php.about.com/od/mysqlcommands/g/Limit_sql.htm Zostaną wyświetlone rekordy 6-10;) Co do ogranicznika zgadzam się z Thekiem. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
czyli tak to ma wyglądać?
Tak dałem, ale przechodząc do następnej strony to dalej wyników nie mam ![]() Pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedź chyba jest prostsza, niż myślałem. Dane przesyłasz formularzem metodą POST, są więc one dostępne dla skryptu tylko na pierwszej stronie wyników(gdyż zmienna post nie zostanie ponownie przesłana, gdy naciśniesz na link). Dlatego też trzeba zacząć od przerobienia wszystkiego na GETa i dorzucić dołączanie tych zmiennych do linku.
PS. Thek wyraźnie napisał, żebyś użył albo mojej, albo jego metody do liczenia $od. Ty użyłeś obu. Ten post edytował Szeszek1992 22.01.2010, 21:34:31 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak to ma wyglądać?
A jak i gdzie "dorzucić dołączanie tych zmiennych do linku." ? Pozdrawiam Ten post edytował Michał90 22.01.2010, 22:28:08 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie zapomnij zmienić w formularzu method na GET. Nie wiem za co odpowiada zmienna znajdz, ale jesli nie przekazuje zadnej wartości, tylko służy do wydzielenia podstrony z szukajką, trzeba zrobić: -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
znajdz tylko rak się pojawia w adresie jak coś wyszukuje
search.php?tytul=prawo&znajdz= A jak zabezpieczyć, że np. jest 10 stron wyników, a na 11już nie ma ale mogę dawać dalej "nastepne" ? Ten post edytował Michał90 22.01.2010, 22:38:43 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czyli rozwiązanie nr 2.
![]() -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
No działa już mi ta paginacja ;]
Jak zrobić taki ogranicznik? "Inna sprawa, że głupotą jest tak robić bo nie masz ogranicznika i możesz nawet sobie od 3 strony mieć wyniki puste, ale możesz przechodzić sobie na kolejne do usranej śmierci bo link Następna nadal będzie się zwiększał. Musisz zrobić ograniczenie, które wyeliminuje dodawanie tego linku gdy osiągniesz ostatnie rekordy tabeli." I jak wywalić te znajdz, żeby błąd nie wyskoczył? te znajdź dotyczy się do tego formularza Ten post edytował Michał90 22.01.2010, 22:47:00 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Co do pytania 2. O jaki błąd Ci chodzi? Ten post edytował Szeszek1992 22.01.2010, 22:58:20 -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bo jak wywaliłem
To był błąd można powiedzieć ![]() "Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!" Bo chciałbym się pozbyć z adresu tego "znajdz" ale w ostateczności niech zostanie pozbędę sie go za pomocą mod rewrite ![]() Ten post edytował Michał90 22.01.2010, 23:06:35 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast
daj
i znajdz w adresie nie potrzebne;) PS. Przydałoby się zabezpieczyć tą wyszukiwarkę przed SQL Injection. Poczytaj sobie o tym na forum. Pozdrawiam, Szeszek1992 Ten post edytował Szeszek1992 22.01.2010, 23:31:20 -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Gdy zamieniłem na to:
To mam błąd: Parse error: syntax error, unexpected T_BOOLEAN_OR, expecting ',' or ')' in /home/... Powinno być tak: Dzięki Pozdrawiam Witam, A jak zrobić, żeby zamiast "następna" wyświetlały się wyniki 1,2,3...itd.? PS. Przed tym atakiem SQl Injection wystarczy tak zmienić kod: + zmiana adresu z search.php?tytul=P&autor=&page=1 na np. szukaj.html/tytul/autor/strona-1/ Pozdrawiam Ten post edytował Michał90 23.01.2010, 17:04:34 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Troszkę własnej inwencji...
Nie dam Ci gotowca, napiszę jak zrobić. 1. Ilość stron z wynikami będzie równa ilości wyników / ilości wyników na stronie (zaokrąglona do góry) 2. Używasz pętli while i jakiejś zmiennej liczącej ilość powtórzeń pętli(przed pętlą ma być równa 1, potem po napisaniu każdego z linków inkrementujesz tą zmienną). Pętla wykonuje się dopóki liczba stron jest większa lub równa od licznika powtórzeń. 3. Jeśli chcesz jakoś wyróżnić numer tej strony, na której jesteś, w pętli dajesz odpowiednią funkcję warunkową, która w wyniku wypisze albo normalny link, np. pogrubioną liczbę. To tyle. W razie problemów pytaj. -------------------- |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 0 Dołączył: 16.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czyli z tego kodu mogę skorzystać?
oprócz 2 ostatnich linijek bo tam wstawie pętle while tak? |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak, możesz skorzystać z tej części kodu.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:16 |