2011-12-09 60 views
-5

我怎樣才能使這個whitout PHP的通知錯誤:在PHP MySQL的選擇與2瓦爾

$id = $_GET['id']; 
$name = $_POST['name']; 

$sql = mysql_query("SELECT * FROM table WHERE id = '$id' or name = '$name'); 

怎麼我不能同時做一個搜索在許多表。

謝謝

+0

要搜索很多表,你可以讓一堆查詢和回聲大家都出去了。你是什​​麼意思「沒有PHP通知錯誤」?這不是一個錯誤。不要忘記也要做'mysql_real_escape_string()'。 – 2011-12-09 03:46:08

+0

您想知道如何在多個表格中進行搜索,或者您是否在詢問有關的錯誤? – sooper

+0

@Ken:我假設它在$ _GET ['id']'或'$ _POST ['name']'還沒有定義時會產生一個通知。 – animuson

回答

0

您的查詢字符串不完整。最後你需要結束雙引號。

$sql = mysql_query("SELECT * FROM table WHERE id = '$id' or name = '$name'"); 
       ^             ^

要一次搜索多個表,請添加更多以逗號分隔的表。

"SELECT table1.field, table2.field FROM table1, table2" 
+1

這回答問題的一部分,我相信他試圖問。+1 – 2011-12-09 03:55:57

+0

非常感謝你的答案。第一個問題是完美的,但「搜索在哪裏獨角獸住... ;-)仍然在我心中:)。好吧,我的意思是這樣的:我想在很多表格中搜索 ' $ sql = mysql_query(「SELECT * FROM cars,people,城市在哪裏 cars.reg ='$ search'|| people.phone ='$ search'|| city.address ='$ search'「); ' 是否有可能這樣做?有關使用PHP進行數據庫搜索的任何建議? 非常感謝 – Pedrog

+0

它應該工作。只要確保您避免輸入以防止SQL注入。另外,我相信MySQL中正確的語法是或者是「或」,而不是「||」。 – Will

0
$id = isset($_GET['id']) ? $_GET['id'] : null; 
$name = isset($_POST['name']) ? $_POST['name'] : null; 

if($id !== null || $name !== null) { 
    $sql = mysql_query("SELECT * FROM table WHERE id = '$id' or name = '$name'"); 
}