当前位置: 首页 > 面试题库 >

用php和mysql搜索多个关键字(其中X喜欢)

潘雅珺
2023-03-14
问题内容

我有一个代码,可以使用ajax动态搜索数据库中的数据,但是一次只能搜索1个关键字。我想对其进行修改,以便可以搜索多个关键字。现在,如果在数据库中输入2个用空格分隔的关键字,则数据不会用空格分隔,将不会有结果。如果在数据库中,则数据为:

‘playstation3’或’play cool station3’

我搜索:

游戏站

没有结果。我想知道是否可以修改我的html" target="_blank">代码,以便我可以搜索2个或更多由空格或另一个单词或DOT或下划线或(-)或(+)或(%)分隔的关键字或单词或(其他任何东西)。

我知道我应该使用pdo或mysqli,但是我仅将其用于测试!

$queried = $_POST['query'];



$search = mysql_query("SELECT * FROM links WHERE name LIKE '%$queried%'");
while($searche = mysql_fetch_array($search)){
    echo "".$searche['link']."</br>".$searche['name']."</br>".$searche['size']."</br>".$searche['category']."<hr></br></br>";

    }

问题答案:

要动态搜索所有关键字,可以使用explode函数将所有关键字分开;

$queried = mysql_real_escape_string($_POST['query']); // always escape

$keys = explode(" ",$queried);

$sql = "SELECT * FROM links WHERE name LIKE '%$queried%' ";

foreach($keys as $k){
    $sql .= " OR name LIKE '%$k%' ";
}

$result = mysql_query($sql);

注意1: 在查询中使用用户输入之前,请务必先对其进行转义。

注意2: 不建议使用mysql_ *函数,请使用Mysqli或PDO作为替代方法

2018年更新-注意3: 不要忘记检查$queried变量的长度并设置限制。否则,用户可以输入不同的大字符串并使数据库崩溃。



 类似资料:
  • 问题内容: 我的数据库中有三个表: 这些表中的每个表都有两个字段,分别称为“内容”和“标题”。我希望能够在我的sql语句中使用“赞”来查看“ messages.content”,“ messages.title”,“ topics.content”,“ topics.title”,“ comments.content”和“ comments”。标题”使用关键字。 到目前为止,我的查询仅能从一张表中

  • 问题内容: 我正在使用此代码突出显示搜索关键字: 但是,这仅突出显示一个关键字。如果用户输入多个关键字,则会缩小搜索范围,但不会突出显示任何单词。如何突出显示多个单词? 问题答案: 正则表达式是必经之路! 要以不区分大小写的方式进行匹配,请在正则表达式中添加“ i” 注意:对于像“ä”这样的非英语字母,结果可能会因地区而异。

  • 本文向大家介绍php mysql like 实现多关键词搜索的方法,包括了php mysql like 实现多关键词搜索的方法的使用技巧和注意事项,需要的朋友参考一下 或者叫,分词检索数据库 $res = mysql_query("select * from peter where id like '%中草药%' and '%6%'"); //这样写是报错的; $res = mysql_query

  • 问题内容: 我正在努力创建一个搜索多个单词的搜索。我的第一次尝试没有任何结果,结果如下: 我还尝试了以下方法,这些方法产生了结果,但是正如您可以想象的那样,我输入的每个单词都得到了重复的结果: 我对如何进行此操作非常迷惑,不胜感激。 编辑: 问题答案: 我已经在同一个主题(搜索关键字)上工作了一段时间,这是我的工作方式: -现在这就是我尝试使用FULLTEXT搜索运行它的样子:但是您应该将表类型设

  • 问题内容: 我是SQL编程的新手。 我有一个表的工作,其中字段是,,,,,,。 我想从前端实施 关键字搜索 。关键字可以位于上表的任何字段中。 这是我尝试过的查询,但包含许多重复的行: 问题答案: 对于VARCHAR字段上的单个关键字,可以使用: 对于描述,通常最好添加全文索引并进行全文搜索(仅适用于MyISAM):

  • 问题内容: 我知道如何进行常规的php mysql搜索并显示结果。但是,由于我要完成的工作的性质,我需要能够按相关性进行排序。让我更好地解释一下: 普通查询“ apple iphone应用程序”将使用%apple iphone application%搜索数据库,但是如果没有记录以该确切顺序显示该短语,则搜索将不会产生任何结果。 我基本上需要做的是分别搜索“ apple”,“ iphone”和“