データベースで「商品」、「説明」、「キーワード」の列を検索しようとしています。問題は、テーブルの「説明」または「キーワード」列にある単語を入力しても、「製品」列にない単語を入力すると、その結果が表示されないことです。テーブルの「製品」列にある単語を入力した場合にのみ、結果が表示されます。
AND ステートメントが意図したとおりに機能しているかどうかはわかりません。これらの 3 つの列内で、ユーザーが検索したものに「似ている」単語を検索し、関連性によって結果を並べ替えたいと考えています。どんな助けでも大歓迎です。
$search_exploded = explode(" ",$searchquery);
foreach($search_exploded as $search_each)
{
$x++;
if ($x==1)
$construct .= "product LIKE '%$search_each%' AND description LIKE '%$search_each%' AND keywords LIKE '%$search_each%'";
else
$construct .= " OR product LIKE '%$search_each%' AND description LIKE '%$search_each%' AND keywords LIKE '%$search_each%'";
}
$sqlCommand = "SELECT * FROM Search WHERE $construct ORDER BY MATCH (product,description,keywords) AGAINST ('$searchquery') DESC";