Я делаю поиск PHP MySQL, пользовательский может быть типа что-то вроде word
или word1 word2
или word1 word2 word3
... Мне нужно получить окончательный запрос типа
$qry = "SELECT title,content,date
FROM articles WHERE
(title like '%$word1%' and title '%$word2%')
OR
(content like '%$word1%' and content title '%$word2%')"
OR
(title like '%$word1%' and content title '%$word2%')
OR
(title like '%$word2%' and content title '%$word1%'); // make sure custom type words all match in database column title and content, maybe only '%$word1%', or maybe multi words '%$word1%', '%$word2%', '%$word3%'...
Я используюнекоторый код ниже, но он не может достичь моего запроса.как сделать это правильно?Спасибо.
$qry = "SELECT title,content,date FROM articles";
if($_REQUEST['search']!=""){
$searchText = $_REQUEST['search'];
$words = preg_split("/\s+/",$searchText);
$uniqueWords = array_keys(array_flip($words));
$parts = '';
foreach($uniqueWords as $word){
$parts[] = " content like '%$word%' ";
}
$where = implode(" AND ", $parts);
foreach($uniqueWords as $word){
$parts[] = " title like '%$word%' ";
}
$where1 = implode(" AND ", $parts);
foreach($uniqueWords as $word){
$parts[] = " title like '%$word%' OR content like '%$word%' ";
}
$where2 = implode(" AND ", $parts);
$qry .=" WHERE $where OR $where1 OR $where2 Order By date DESC ";
}