Jak wcisne szukaj to stronicuje mi ok. Pokazuje wszystkie rekordy i dzieli ładnie na strony np:
27 rekordów po 5 na stronie czyli pokazuje 1 strona z 6. Jeślii wezme wybiorę warunki wyszukiwania również jest wszystko ok.
Problem pojawia się jak wciisnę warunki wyszukiwania dla drugiej tabeli.
Przykład:
Zaznacze prawo jazdy 1 i 2 pokazuje mi ładnie 6 wyników, a stronicowanie 1 strona z 5
lub
zaznacze pj 1 pokazuje 8 rekordów , a stronicowanie 1 z 3 stron.
Zapytanie odpowiedzialne za stronicowanie-nie do końca działa ok
$sql="SELECT count(*) as `ile` FROM ogloszenia o LEFT OUTER JOIN pj p on o.id=p.id_ogloszenia WHERE ". implode( ' AND ', $where ).""; $row = $stmt=$pdo->prepare($sql); $row = $stmt->execute( $bind ); $row = $stmt->fetch(); $recordsCount = $row['ile'];
i skrypt z zapytania które jest ok, a słuzy do wyswietlania wyników
$sql="SELECT o.miasto,o.id_kraj,o.id_wojewodztwo,o.wyroznione,o.aktywne,o.id,o.za,o.cena,o.id
_kategoria,o.data_dod,o.nazwa_ogloszenia,o.czas, z.id_ogloszenia,z.thumb,z.uploads,z.im,p.id_ogloszenia,p.id_prawo_jazdy FROM ogloszenia o LEFT OUTER JOIN zdjecia z on o.id=z.id_ogloszenia LEFT OUTER JOIN pj p on o.id=p.id_ogloszenia $sql.=" and o.id not in (select o2.id from ogloszenia as o2,pj as p2 where o2.id=p2.id_ogloszenia AND p2.id_prawo_jazdy in(".implode(',',$idpj_all).")) group by o.id having count(o.id)=".count($where_idpj)." order by o.wyroznione DESC,o.id DESC limit ".$start.",".($end - $start + 1); else $sql.=" group by o.id order by o.wyroznione DESC,o.id DESC limit ".$start.",".($end - $start + 1); $stmt=$pdo->prepare($sql); $stmt->execute( $bind );