Po pierwsze kod podatny na SQL Injection - uzywa zwyklych string concatention zamiast zapytan z parametrami (uzycie znaku ? zamias wartosci i przekazanie wartosci zmiennej jak wykonujesz zapytanie)...
Co do wyswietlania stronami... najpierw:
zamiast
Kod:
SELECT * FROM galeria WHERE kategoria LIKE '$kategoria' AND opis LIKE '%$fraza%'"
uzyc
Kod:
SELECT COUNT(*) AS ilosc FROM galeria WHERE kategoria = ? AND opis like '%?%'
a nazwe kategorii podajesz jako parametr wywolania zapytania... musze odsiwezyc moja wiedze z PHP+MySQL - dawno nic nie pisalem ![Smile](images/smilies/smile.png)
Moim zdaniem uzycie LIKE do dopasowania kategorii nie ma sensu za grosz... uzyj normalnego porownania...
Majac 'ilosc' wierszy ktore spelniaja warunek, dzielisz to przez ilosc obrazkow na stronie i zaokraglasz wynik do pierwszej calkowitej w gore
masz wiec ilosc stron ile trzeba przygotowac aby pokazac wszystkie obrazki...
Teraz odciazymy baze danych - kazemy jej wyswietlac tyle rekordow ile trzeba i tylko te co trzeba!
Kod:
SELECT * FROM galeria WHERE galeria = ? AND opis LIKE '%?%' LIMIT 51,10;
Wartosci 51 i 10 nie sa przypadkowe... zakladam ze pokazujesz 5 strone wynikow a na stronie jest 10 zdjec - pierwsze bedzie mialo wiec numer 51...
Po takim zapytaniu dostaniesz tylko 10 wierszy z bazy (o numerach 51 do 60) a nie wszystko co spelnia te warunki...
Musialbys jednak zmienic kod aby jako parametr na 'klikaczu' z numerem strony do wyswietlenia mial numer strony na prawde... a pozniej poczatek limitu to numer strony * zdjec na stronie + 1 :-)
Wiem ze chaotycznie ale mam nadzieje ze sie przyda...