2012-11-02 30 views
0

任何幫助,將不勝感激。傳遞多維陣列從多個選項框到MySQL

我有一個選擇/選項框傳遞$_GET陣列成將此值傳遞到模型中檢索某些MySQL的一個PHP控制器。

不過我最多的地方,我只是一廂情願地在這個現在刺向階段。我認爲問題與陣列雖然。

<select id="frm_type" style="margin-left:180px; width: 136px; height:100%;" name="uid[]" multiple="multiple"> 
    <option value="U4BC3128209B01">All Users</option> 
    <option value="U4D88B8CFE7579">more options</option>   
</select> 

$_GET看起來像這樣?&uid%5B%5D=U4DFF15A4581A4&uid%5B%5D=U4D88B8CFE7579 它進場時,像這樣的控制器......

$filter_in = $_GET;

然後叫成這樣的模式。

$body_data['user_stats'] = $this->mtvm_model->user_stats($filter_in);

於是最後的相關章節想要使用它這樣做:

 if ($filter_in['uid'] != '') 
     { 
     $sqlQuery .= " AND "; 

     foreach($filter_in['uid'] as $key=>$value) 
      { 
      $sqlQuery .= " ".$this->tables_calls.".userId = '".mysql_real_escape_string($value)."' "; 
      if($key != count($filter_in['uid'])-1) 
       { 
       $sqlQuery .= " OR "; 
       } 
      } 
     } 

難道僅僅是我錯誤地試圖傳遞一個數組作爲$filter_in['uid']

+0

確定查詢字符串是像'&UID = U4BC3128209B01&UID = U4D88B8CFE7579'和不喜歡'&UID%5B%5D = U4BC3128209B01&UID%5B%5D = U4D88B8CFE 7579'? –

+0

對不起,就是這樣。我從字面上複製n粘貼從網址獲取。 –

+0

這是不可能的。如果您的列表已'NAME = 「UID []」'那麼它應作爲'UID [] = UID [] ='或'UID%5B%5D = UID%5B%5D'。我懷疑你的表單有什麼問題。 –

回答

0

查詢字符串:

uid%5B%5D=U4DFF15A4581A4&uid%5B%5D=U4D88B8CFE7579 

意味着$_GET["uid"]看起來是這樣的:

Array 
(
    [0] => U4BC3128209B01 
    [1] => U4D88B8CFE7579 
) 

你應該檢查這個變量的存在這樣的:

if (isset($filter_in['uid']) && is_array($filter_in['uid'])) { 
    // ...