我試圖讓我的網站搜索框能夠在一個查詢中搜索多個表。分組或加入搜索查詢?
因此,如果對存儲在ptb_profiles
他們得到任何用戶匹配的名稱,或者如果他們搜索按國籍存儲在ptb_stats
他們得到所有顯示國籍的用戶的用戶display_name
用戶搜索。
當我最初使用SELECT * FROM ptb_users, ptb_stats, ptb_profiles
時,我得到了重複的搜索結果,並且多次顯示相同的結果,所以我試圖避免這種情況,並且每個結果只顯示一次,通過分組和聯合使用除了沒有工作。
現在香港專業教育學院嘗試這樣:
$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
能有人告訴我我要去哪裏錯了嗎?
您沒有向我們展示您的架構,也沒有任何代碼或解釋計劃。你得到的錯誤是因爲你的代碼失敗*之前*它到達mysql_fetch_array()並且你沒有包含足夠的檢查。 – symcbean
可能的重複[mysql_fetch_array()期望參數1是資源,布爾在給出](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter-1-to-be-resource- boolean-given-in-select?answertab = votes#tab-top) –
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –