2011-12-09 25 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'"); 
}