Както някой предложи, можете просто да се адаптирате и да използвате пълнотекстово търсене.
Ако решите да поемете по този маршрут, ще трябва да активирате пълнотекстово търсене в задължителните полета.
Предполагам, че ще проверите post_title и post_body (?), които трябва да стартирате това;
ALTER TABLE `posts` ADD FULLTEXT KEY `post_search` (`post_title`,`post_body`);
Когато това е направено, вашата заявка за търсене може лесно да бъде редактирана, за да стане;
$sql = "SELECT * FROM `posts` WHERE MATCH(post_title,post_body) AGAINST '$search'";
Ако искате по-добро съвпадение, също е възможно да му дадете оценка и да подредите по това, което ще изисква код, подобен на този:
$sql = "SELECT *, MATCH(post_title, post_body) AGAINST ('{$search}') AS score ".
"FROM `posts` WHERE MATCH(post_title, post_body) AGAINST ('{$search}') ORDER BY `score` DESC";
--- БЕЛЕЖКИ
За търсенето трябва да разберете как ще търсите.
В последния случай използвах подобно, просто имах формуляр за думата за търсене (наречена „Търсене“), което води до изпращане на $_POST['search'] до сървъра.
След това използвах;
$search = (array_key_exists('search', $_POST) && is_string($_POST['search'])) ? mysql_real_escape_string($_POST['search'], $c) : FALSE ;
if ($search) {
// Do the fulltext query requires (See above)
}
Тъй като търсенето в пълен текст ще пренебрегне тирето, остават ви само интервали, което работи чудесно за пълен текст, ако решите да използвате резултатите с точки.