2013-07-02 57 views
0

我有一個單選按鈕,它有兩個值; 0和1的單選按鈕來使用通過在PHP中可變$activity = ($_POST['activity'];在PHP中用'0'值查詢MySQL

在PHP查詢被設定爲:

"SELECT * FROM Orders WHERE activity = '$activity'"; 

這限制其中的活性列等於「1」值的行,但不適用於'0'值。相反,它帶來了所有的記錄。

任何想法我失蹤?我試過SELECT * FROM Orders WHERE activity = '0'在MySQL本身,並且工作正常,所以我不確定我在PHP代碼中做了什麼錯誤。

+3

請切換到[準備好的語句](http://bobby-tables.com/php.html)以防止SQL注入。 –

+0

活動字段的類型是什麼? –

+0

你錯過了一個右括號:'$ activity =($ _POST ['activity']);'。 –

回答

0

只投,爲int,並保護您的數據庫,以及(字段的數據類型是不串左右):

if (isset($_POST['activity'])){ 
    $activity = (int) $_POST['activity'] ; 
    "SELECT * FROM Orders WHERE activity = {$activity} "; 
    //And more 
} else { 
    echo "Nothing posted" ; 
} 
+0

你在着火 – Orangepill

+0

謝謝Jari,那很好。 – user2540566

-2

有土耳其諺語說「喂烏鴉,擊敗了眼睛」 ......

$activity = intval($_POST['activity']); 
+0

恩,如果$ activity是'0',那麼查詢將以'='0''結束。確實,在PHP'''== 0'中是真實的,但是OP沒有進行任何平等測試...只是直接分配,而PHP將**不會在簡單分配上做這樣的修改。 –