2013-09-01 49 views
0

我收到了從db中選擇的過多行。但是,當我嘗試使用AND lt_num篩選數據時,它根本沒有選擇任何內容。可能是什麼問題呢?過濾MySQL查詢。 「AND」運算符

$w = $_POST['pal_num']; 
$w = "'".implode("','",$_POST['pal_num'])."'"; 
$r = mysql_query("SELECT * FROM pl_tab WHERE pal_num AND lt_num in (".$weights.");"); 
+0

您的意思是使用'$ w'來代替'$ weights'嗎?,$ weights'是在哪裏定義的? – vee

+0

是的,我打算使用'$ w'來代替'$ weights'。 – SweetJC

回答

0

我的猜測是,你需要做兩個比較是這樣的:

SELECT 
    * 
FROM 
    pl_tab 
WHERE 
    pal_num in (".$weights.") 
    AND lt_num in (".$weights."); 

你不能說column1 and column2 = 3例如。如果您想要兩行都等於3的行,則需要在查詢中使用column1=3 and column2=3

此外,您可能希望讀一讀this Q&A that I wrote,它涵蓋了很多基本的SQL查詢並從此處擴展。

編輯:

如果您在查詢中有$weights,你設置它的地方,或者你希望它是什麼在你的變量,你在這裏展示:

$weights = $_POST['pal_num']; 
$weights = "'".implode("','",$_POST['pal_num'])."'"; 

這是什麼你的意思是?

+0

我把它改成了'(「SELECT * FROM pl_tab WHERE pal_num in(」。$ weights。「)AND lt_num in(」。$ weights。「);」);'但它仍然不起作用。我錯過了什麼嗎?感謝您的鏈接,我絕對應該閱讀它。 – SweetJC

+0

@SweetJC請參閱編輯。 – Fluffeh

+0

是的,這就是我的意思。 '$權重',而不是'$ w' – SweetJC