我试图让我的网站搜索框能够在一个查询中搜索多个表。
因此,如果用户搜索display_name
存储在其中的用户,ptb_profiles
他们会得到任何具有匹配名称的用户,或者如果他们按存储在其中的国籍进行搜索,则会ptb_stats
显示所有具有该国籍的用户。
当我最初通过使用执行此操作时,SELECT * FROM ptb_users, ptb_stats, ptb_profiles
我得到了重复的搜索结果,并且多次显示相同的结果,所以我试图避免这种情况,并且每个结果仅通过分组和使用 union all 显示一次,但这不起作用。
现在我试过了:
$query_for_result=mysql_query("SELECT display_name, location, gender, contact_number FROM ptb_profiles WHERE display_name LIKE '%".$query."%' OR location LIKE '%".$query."%' OR gender LIKE '%".$query."%' OR contact_number LIKE '%".$query."%' JOIN SELECT email, subscription FROM ptb_users WHERE email like '%".$query."%' OR subscription like '%".$query."%' JOIN SELECT nationality, hobbies, local_station FROM ptb_stats WHERE nationality like '%".$query."%' OR hobbies like '%".$query."%' OR local_station like '%".$query."%'
LIMIT 5");
但这只会引发以下错误:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/PTB1/includes/mod_sidebar/search.php on line 31
有人可以告诉我哪里出错了吗?