0

任何帮助将非常感激。

我有一个选择/选项框将一个$_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']

4

1 回答 1

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'])) {
    // ...
于 2012-11-02T15:15:28.590 回答