MySQL返回两次打印数组

时间:2013-06-04 06:22:23

标签: mysql arrays json

我正在尝试让MySQL将所有内容放入一个数组中,以便我以后更轻松地使用它。

我目前正在使用以下

$result = mysql_query('SELECT * FROM  (SELECT * FROM new WHERE qc_status =\'pending\' AND call_date = \''.date("Y-m-d").'\' LIMIT 0,17) as assesmenttable ORDER BY RAND() LIMIT 1',$link);
                        $array = array();

                        while($row = mysql_fetch_array($result)){
                            foreach($row as $column => $value) {
                                $array[$column]= $value;
                            }
                        }
                        print_r($array);
                }

但问题是它给了我一个像这样的数组

Array ( [0] => Ms [title] => Ms [1] => Belinda [fname] => Belinda
显然它做错了;我希望数组看起来像这样

array([title]=>Ms, [fname]=>Belinda)

在json_encode中它应该看起来像这样

{title:Ms,fname:Belinda}

有人会指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

mysql_fetch_array默认使用MYSQL_BOTH作为result_type,为您提供关联和数字索引。

您必须使用MYSQL_ASSOC作为result_type才能使结果数组仅包含关联索引:

while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
  // your code
}