Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Stronicowanie tabeli z warunkami.
Forum PHP.pl > Forum > Przedszkole
WEC_26
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.
myth
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.
WEC_26
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).
myth
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
WEC_26
OPS... Nie zauwazylem błędu. sad.gif Poprawiłem i jest w miarę ok. Dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.