а какая разница - подготовленный запрос, или неподготовленный?
И что означает этот странный код?
if($pricemin > 0) echo $result->bindParam(':pricemin', $pricemin);
пример пагинации с подготовленными выражениями есть здесь:
phpfaq.ru/paginator#new
библиотека, правда, более удобная чем, ПДО, но принцип тот же.
Чтобы не собирать условия в ПХП, можешь написать в запрос так
SELECT * FROM board_post, model, marka WHERE model.id_model=board_post.id_model
AND board_post.id_marka=marka.id_marka
AND (:brand = 0 OR id_marka = :brand)
AND (:model = 0 OR id_model = :model)
AND (:pricemin = 0 OR price >= :pricemin)
AND (:pricemax = 0 OR price <= :pricemax)
AND (:yearmin = 0 OR year >= :yearmin)
AND (:yearmax = 0 OR year <= :yearmax)
ORDER BY date DESC