Zoals iemand heeft gesuggereerd, kun je je gewoon aanpassen en fulltext zoeken gebruiken.
Als u ervoor kiest om deze route te nemen, moet u zoeken in volledige tekst inschakelen op de vereiste velden.
Ik neem aan dat je post_title en post_body (?) controleert, waarvoor je dit moet uitvoeren;
ALTER TABLE `posts` ADD FULLTEXT KEY `post_search` (`post_title`,`post_body`);
Als dat is gebeurd, kan uw zoekopdracht eenvoudig worden bewerkt tot;
$sql = "SELECT * FROM `posts` WHERE MATCH(post_title,post_body) AGAINST '$search'";
Als je een betere match wilt, is het ook mogelijk om het een score en volgorde te geven, waarvoor een code nodig is die lijkt op deze:
$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";
--- OPMERKINGEN
Voor het zoeken moet je uitzoeken hoe je gaat zoeken.
In het laatste geval dat ik iets soortgelijks gebruikte, had ik gewoon een formulier voor de zoekterm (genaamd "Zoeken") waardoor $_POST['search'] naar de server werd gestuurd.
Ik gebruikte toen;
$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)
}
Aangezien zoeken in volledige tekst het koppelteken negeert, houdt u alleen spaties over, wat prima werkt voor volledige tekst, als u ervoor kiest om gescoorde resultaten te gebruiken.