用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