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

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

‘playstation3’或’play cool station3’

我搜索:

游戏站

没有结果。我想知道是否可以修改我的代码,以便我可以搜索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);

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

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

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

以上是 用php和mysql搜索多个关键字(其中X喜欢) 的全部内容, 来源链接: utcz.com/qa/412219.html

回到顶部