将多维数组从多个选项框传递到mysql

时间:2012-11-02 14:58:54

标签: php html mysql

任何帮助都会非常感激。

我有一个select / option框将$_GET数组传递给php控制器,该控制器将此值传递给检索某些MySQL的模型。

然而,我正处于我现在只是如意地刺伤这个阶段的阶段。我认为问题在于数组。

<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']传递?

1 个答案:

答案 0 :(得分: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'])) {
    // ...