我有一个简单的搜索查询脚本,当用户输入关键字时,会显示数据库中与这些查询相匹配的任何用户。
目前,用户一次只能搜索一个查询,但我想知道如何修改此脚本以便用户可以搜索多个查询,因此如果他们输入白人英国男性,他们就会获得所有用户列为白人,英国人和男性。或者,如果他们搜索威尔士40岁以上的女性,那么他们就会得到所有威尔士40岁以上女性的用户。
$query_for_result=mysql_query("SELECT *
FROM ptb_stats
WHERE display_name like '%".$query."%' OR and location LIKE '%".$query."%' OR age LIKE '%".$query."%' OR nationality LIKE '%".$query."%' OR hobbies LIKE '%".$query."%' OR ethnicity LIKE '%".$query."%' OR local_station LIKE '%".$query."%' LIMIT 5");
echo "<div class=\"search-results\">";
while($data_fetch=mysql_fetch_array($query_for_result))
{
答案 0 :(得分:0)
你还有一个额外的and
,除了你的SQL看起来很好。
虽然我希望你正在消毒$query
。
您可能需要考虑是否要使用OR
或AND
,具体取决于您尝试对搜索进行的操作。您几乎肯定也希望构建SQL字符串以仅包含要搜索的列。
例如:
if( isset($query_age) ) {
$sql_string .= " OR age LIKE '%".$query_age."%'";
}
etc...
答案 1 :(得分:0)
您可以实现对PHP页面的客户端Ajax调用,而该页面将进行数据库查询并将XML或JSON答案返回给客户端。然后在本地更新客户端。