Не ли в коде PHP чего-то лишнего?
В целом, приятно видеть, что люди используют PDO, а не mysql_query.
Глазик не дергался от ужаса. Вроде, все отлично.
Остального не видел, но убедитесь, что у вас разделена логика от представления.
Несколько пугает текст "страница тегов,поиска". Не должно быть на страницах представлений и разметки - sql. Ни в каком виде. Только вызов методов класса, внутри которых уже могут прятаться запросы в бд. Ну и не привыкайте к звездочке. При использовании join появится много мусора. Так же рекомендую оградить доступ к бд до уровня "только хранимые процедуры". Поддержка sql-кода станет попроще. Перепишете хранимку, а приложение останется нетронутым