Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Stronicowanie tabeli z warunkami.
WEC_26
post 29.09.2006, 16:56:09
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 23.08.2006

Ostrzeżenie: (0%)
-----


Z góry przepraszam za kolejny post o 'stronicowaniu' ale nie mogłem sie doszukać w sieci rozwiązania mojego problemu.

Kod:
  1. <?php
  2. // połączenie z bazą
  3. // ...
  4.  
  5. $SQL = "SELECT * 
  6.  FROM szukaj 
  7. WHERE slowa LIKE '%$q%'
  8.  LIMIT ".mysql_escape_string((int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  9.  
  10. // ...
  11. // wyświetlanie stron
  12. // koniec
  13. ?>


Wszystko ładnie ale tylko na 1 stronie. Włączając 2 stronę wyniki nie pokazują się. Odkryłem jedynie, że jest to spowodowane zapytaniem SQL a konkretnie poleceniem "WHERE slowa LIKE '%$q%'", poniważ bez niego wszystko działa ok. Gdy tylko dokładam warunek, działa tylko 1 strona. Reszta nie.

Cyy mógłby mi ktoś pomóc roywiya ten problem, bo ja nie mam pojęcia dlaczego to nie działa.
Go to the top of the page
+Quote Post
myth
post 29.09.2006, 17:55:28
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


1. mysql_escape_string jest tu niepotrzebne, skoro definiujesz jako INT
2. Skad bierzesz $q? Najlepiej wyswietl ja prostym:
echo '$q= ' .$q;
zaraz przed zapytaniem i sprawdz jej wartosc.
Go to the top of the page
+Quote Post
WEC_26
post 29.09.2006, 19:20:27
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 23.08.2006

Ostrzeżenie: (0%)
-----


Zmienną $q biorę z $q = $_GET[q]; a $_GET[q] z formularza na wcześniejszej stronie, który przesyła poprzez method="get". Następne strony generowane są w ten sposób:
  1. <?php
  2. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  3.  echo '<a href="?q='.$q.'&str='.($i).'">[ '.($i+1).' ]</a> ';
  4. }
  5. ?>
, co daje w adresie szukane słowo oraz numer strony. Sorki, że nie napisałem tego w 1 poście...

Powracając do problemu. Wyrzuciłem "mysql_escape_string" z polecania, ale to nic nie dało. Dalej jak było tak jest. Na każdej stronie sprawdziłem wartość $q i na każdej jest ona prawidłowa, więc taka sama jak na wcześniejszych. Nie działa tylko ( i aż) wyświetlanie wyników.

Jak potrzeba to prześle cały kod (jest troszkę długi).

Ten post edytował WEC_26 29.09.2006, 19:21:33
Go to the top of the page
+Quote Post
myth
post 29.09.2006, 20:40:42
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 25.09.2006

Ostrzeżenie: (0%)
-----


Skoro tutaj masz:
  1. <?php
  2. (int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE.",".ILOSC_WYNIKOW_NA_STRONIE;
  3. ?>

$_GET['strona']

  1. <?php
  2. echo '<a href="?q='.$q.'&str='.($i).'">[ '.($i+1).' ]</a> ';
  3. ?>

To zmien tu 'str' na 'strona' i bedzie ok. smile.gif

Ten post edytował myth 29.09.2006, 20:47:09
Go to the top of the page
+Quote Post
WEC_26
post 30.09.2006, 08:56:14
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 23.08.2006

Ostrzeżenie: (0%)
-----


OPS... Nie zauwazylem błędu. sad.gif Poprawiłem i jest w miarę ok. Dzięki!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 10:22