Я пытаюсь создать поле поиска, в котором люди могут искать по тегам, которые сохранены в нашей базе данных (ajax).Проблема заключается в том, что я хочу, чтобы пользователь мог выполнять поиск по тегам контента, где контент ДОЛЖЕН иметь прикрепленные теги, которые включают все теги, которые использовались для поиска.Допустим, я ищу «bwm red», я хочу показывать контент только с прикрепленными тегами «bmw» и «red».Так что НЕТ контента только с одним из двух тегов.
Кроме того, пользователь может искать теги, которые являются необязательными, поэтому предположим, что пользователь ищет «красный желтый», результаты должны содержать теги «красный» или «желтый», где они также совпадают.с обязательным полем поиска.Таким образом, вы получите очень специфический поиск.
На этой фотографии я включил дизайн того, как должно работать поле поиска, и должно быть более понятно, что я пытаюсь создать.
Я также написал некоторый код, но, как вы можете видеть, он не работает так, как я хочу.
Любая идея, как я могу решитьэто проблема?
<form action="search.php" method="post" >
<h2>Search Keywords:</h2>
<h3>MUST</h3>
<input type="text" name="must">
<h3>Optional</h3>
<input type="text" name="keyword">
<input type="submit" value="Search">
</form>
if(!empty($_POST))
{
$aMust = explode(" ", $_POST['must']);
$aKeyword = explode(" ", $_POST['keyword']);
$query ="SELECT * FROM table1 WHERE field1 like '%" . $aKeyword[0] . "%'";
for($i = 1; $i < count($aKeyword); $i++) {
if(!empty($aKeyword[$i])) {
$query .= " OR field1 like '%" . $aKeyword[$i] . "%'";
}
}
$result = $db->query($query);
echo "<br>You have searched for keywords: " . $_POST['keyword'];
if(mysqli_num_rows($result) > 0) {
$row_count=0;
echo "<br>Result Found: ";
echo "<br><table border='1'>";
While($row = $result->fetch_assoc()) {
$row_count++;
echo "<tr><td> ROW ".$row_count." </td><td>". $row['field1'] . "</td></tr>";
}
echo "</table>";
}
else {
echo "<br>Result Found: NONE";
}
}