首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL关键字搜索

问SQL关键字搜索
EN

Stack Overflow用户
提问于 2017-02-03 14:09:04
回答 4查看 55关注 0票数 1

我正在尝试使用PHP和SQL在我的网站上创建一个搜索功能。我正在尝试这样做,这样当我在其中搜索关键字时,它会显示与该关键字匹配的项目

这是我的Database

如果我搜索“米鸡”,它将返回Davida和roys,我希望它只返回Davids,因为它匹配两个单词,而不是roys,因为roys只匹配大米

这是我当前的代码。

代码语言:javascript
复制
$search = $_GET['query'];

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("axamenu");

$query = mysql_query("SELECT  * FROM menu WHERE CONTAINS(items,'$.search')");
if(mysql_num_rows($query) >= 1) {
    while($a = mysql_fetch_array($query)) {
        echo "<a href='".$a['profileurl']."'>".$a['restaurant']."</a><p>".$a['menutype']."</p><hr/>";
    }

} else {
    echo "Oh no! Nothing was found.";
}
EN

回答 4

Stack Overflow用户

发布于 2017-02-03 14:48:28

您可以这样进行查询

代码语言:javascript
复制
$where = '';
$string = "thi sdas asd";
$search = explode(" ",$string);
if(sizeof($search)>1)
{
$where = "1=1";
    foreach($search=>$key as $val){
        $where .= "or items like %".$val."%"; 
    }
}
else
{

$where = "items like %".$search[0]."%"
}

$query = mysql_query("SELECT  * FROM menu WHERE ".$where);
//rest of your code goes here

注意:停止使用不推荐使用和不安全的mysql_*-函数。在PHP5.5(2013年)之后就被弃用了,在PHP7中也被完全移除了。

票数 0
EN

Stack Overflow用户

发布于 2017-02-03 14:58:39

如果你只想要davids的结果是“米鸡”,你可以把你的字符串拆分成大米和鸡肉,然后查询为

SELECT * from menu WHERE items REGEXP 'rice' AND items REGEXP 'chicken'

你只会得到一个结果

注意:使用REGEXP可能会降低批量数据检索的速度

票数 0
EN

Stack Overflow用户

发布于 2017-02-03 20:59:24

代码语言:javascript
复制
$search = $_GET['query'];

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("axamenu");

$query = mysql_query("SELECT  * FROM menu WHERE 
items LIKE '%".$search."%'");
if(mysql_num_rows($query) >= 1) 
{
    while($a = mysql_fetch_array($query)) 
    {
        echo "<a href='".$a['profileurl']."'>".$a['restaurant']."</a><p>".$a['menutype']."</p><hr/>";
     }

 } 
 else 
 {
     echo "Oh no! Nothing was found.";
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42017832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档