2013-07-30 37 views
0

這裏是我的表單和mysql/php的代碼。MySql如何結合2查詢if語句

如果2個複選框都被檢查,mysql不執行查詢。 有什麼辦法讓這個表單正常工作嗎?

MySQL的

if (isset($_POST['A']) && !empty($_POST['A'])) { 
$query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as A WHERE Column1='y'"; 
} 
if (isset($_POST['B']) && !empty($_POST['B'])) { 
$query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as B WHERE Column2='y'"; 
} 

<form id="myform1" class="myform1" method="post" name="myform1"> 
<input type="checkbox" name="A[]" id="A" value="y" /> 
<input type="checkbox" name="B[]" id="B" value="y" /> 
<input id="submit" type="submit" name="submit" value="Submit" 
onclick="return submitForm1()" /> 
</form> 

任何幫助表示讚賞。謝謝

+0

你意識到你需要檢查'$ _ POST [「A」] [0]'因爲你使用數組訪問值在輸入名稱中使用符號'A []'?你可能應該刪除它,只需調用輸入字段'A'和'B',因爲我沒有看到你需要如何創建一個數組。只是碰巧你的情況並不重要,因爲你實際上並沒有在任何地方使用輸入值。只是想指出他是否會在你需要這樣的價值的情況下造成混亂。 –

+0

你能顯示完整的代碼嗎?你是否真的在條件中查詢數據庫,但是沒有顯示它,或者是在兩個條件都被執行後使用'$ query'實際發生MySQL查詢(在這種情況下,只會運行最後一個成功條件的查詢) ? –

+0

嗨@Mark謝謝你的評論。我很欣賞你的建議,但var_dump返回值正確解析。我的問題是如何結合2個查詢 – user2635574

回答

0

只是一個建議,它的醜陋,但簡單:

$teamsters = ''; 
$query = ''; 
if (isset($_POST['A'][0]) && !empty($_POST['A'][0])) { 
    $query= "SELECT * FROM (SELECT * FROM myTable WHERE...) as A WHERE Column1='y'"; 
    $teamsters = ' UNION '; 
} 
if (isset($_POST['B'][0]) && !empty($_POST['B'][0])) { 
    $query .= $teamsters . "SELECT * FROM (SELECT * FROM myTable WHERE...) as B WHERE Column2='y'"; 
} 
+0

謝謝你,這個UNION工作正常! – user2635574