2016-10-07 22 views
0

林創建具有基於SQL查詢多個複選框形式所以結果值通常總是不同的PHP,MYSQL陣列從形式複選框到變量

<input type="checkbox" name="warrior[]" value="<? echo $warrior_id; ?>"> 

,但我不知道如何利用的價值用戶從數組中檢查的框。每個複選框在我的數據庫中都有一行的id。

我需要運行在另一個查詢中選中的每個ID,以便爲腳本的其餘部分提供更多詳細信息。

「SELECT COL1,COL2 FROM表WHERE ID = '$ ????'」

有最多到陣列中的10個值(最多10個複選框)

謝謝你任何意見

+0

使用IN子句http://stackoverflow.com/questions/16117492 /在子句中使用不同的方法在mysql中 – jitendrapurohit

+1

您是否嘗試過'print_r($ _ POST ['warrior']''看看POST包含的第一個 –

+0

它可能會幫助你:http://www.w3schools.com/sql/sql_in.asp – someone

回答

0

在HTML

<input type="checkbox" name="warrior[]" value="<? echo $warrior_id; ?>"> 

在PHP中 - 你可以implode檢查值數組。與IN檢查你的數據庫

$getvalues = $_GET['warrior']; //only for example i am using this. you have to filter and do validation on it. 
$getImplodeValue = implode(',', $getvalues); 

$sqlQuery = "SELECT col1, col2 FROM table WHERE id IN '$getImplodeValue'"; 
+0

請注意,此代碼**不是**安全的。攻擊者可以執行SQL注入。您應在使用PDO或準備好的陳述並在將每個ID放入陳述之前對其進行驗證。 –

+0

請閱讀評論我已經告訴他,我只想解釋他如何使用內爆。 – shubham715

+0

謝謝,所以當我有查詢時,是否循環遍歷結果while($ row = mysql_fetch_array($ sqlQuery)){ – Mystic

0
  1. 檢查驗證

2.然後使用以下:

$getWarrior = $_REQUEST['warrior']; //get value 

$arrWarrior = ''; 

if(!empty($getWarrior)) 
{   
    $arrWarrior = implode(',', $getWarrior); 
} 

$sqlQuery = "SELECT col1, col2 FROM table WHERE 1"; 
if(!empty($arrWarrior)) 
{ 
    $sqlQuery .= " and id IN ($getImplodeValue)"; 
}