我想为网站创建一个搜索栏,以匹配数据库列(命名标题)中的一个,两个或任何输入字。
例如,如果我输入"我的姓名是来自印度的#34;,我希望与title ="成功匹配我住在印度" (通过" INDIA"的比赛。)
我该如何设计这样的查询?
更多例子:现在,如果我搜索"我喜欢玩#34;然后我的查询只与数据库行匹配"我喜欢每天玩板球"但不是和#34;你就像我的兄弟"。我想把它与行匹配"我喜欢足球比赛"或者"我每天都玩#34;或者"你就像我的兄弟"
<form action="search.php" role="search" method="GET">
<input type="text" name="searchbox">
<input type="submit" name="submit" value="search">
</form>
$search = strtolower($_GET['searchbox']);
$search_exploded = explode ( " ", $search );
$construct = '';
foreach( $search_exploded as $search_each ) {
if(!in_array($search_each, $commonwords)){
$construct .="AND title LIKE '%$search_each%' ";
}
}
$construct="SELECT * FROM vdo WHERE 1 $construct LIMIT 60";
$query=mysqli_query($con1,$construct);
while($row=mysqli_fetch_array($query)){
$title=$row['title'];
echo $title;
}
答案 0 :(得分:0)
您想使用MYSQL FULLTEXT_SEARCH
方法。
文档: - https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html
实施例: -
表格强>
|id|columntosearch|
|2 | You can search any word|
|3 | Yes word is the word|
|4 | fourth row|
MySQL> SELECT * FROM `TABLE` WHERE MATCH(`columntosearch`) AGAINST('word' IN NATURAL LANGUAGE MODE)
<强>输出强>
|id| columntosearch
|2 | You can search any word
|3 | Yes word is the word