SQL关键字搜索

时间:2017-02-03 06:09:04

标签: php mysql

我正在尝试使用PHP和SQL在我的网站上创建搜索功能。 我试图让它成为当我在其中搜索关键字时显示与关键词匹配的项目

这是我的Database

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

这是我目前的代码。

$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.";
}

4 个答案:

答案 0 :(得分:0)

您可以通过这种方式进行查询

$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 _ * - 函数。它们自PHP 5.5(2013年)以来已被弃用,并在PHP 7中被完全删除。使用MySQLi或PDO

答案 1 :(得分:0)

如果你只想把大卫的结果当作“米饭鸡”, 你可以将你的字符串拆分为米饭和鸡肉,并查询为

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

  

你只能得到一个结果

注意:使用REGEXP会降低批量数据检索的结果

答案 2 :(得分:0)

$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.";
 }

答案 3 :(得分:-2)

尝试使用此功能,如果有效,请告诉我们。

select * from table_name where items like 'rice%' or items like 'chicken%';