将函数中的MySQL行作为数组返回

时间:2011-08-17 19:40:54

标签: php mysql

我正在尝试创建一个函数来将数据库中的所有用户作为数组返回。当我print_r用户时,我得到一个多维数组返回:

前:

Array ( [0] => Array ( [0] => Albers [1] => Abbings [2] => Blaine [3] 

代码:

   <?php
        session_start();
        function getActiveUsers() {
            $con = mysql_connect("-","-","-");
            if (!$con)
              {
              die('Could not connect: ' . mysql_error());
              }
            else {
                // connected to database successfully
            }
            mysql_select_db("casemanagers", $con);
            $result = mysql_query('select * from users');
            $arr = array();
            while($row= mysql_fetch_assoc($result)){
                $arr[] = $row['Name'];
            }
            return array ($arr);
        }

        $row = array();
        $row = getActiveUsers();
        print_r($row);

    ?>

任何人都可以告诉我为什么会发生这种情况或者我可以采取哪些措施来解决这个问题?感谢。

3 个答案:

答案 0 :(得分:2)

这是返回行:您应该返回$arr而不是array($arr)

你所做的是创建一个以$arr为唯一元素的新数组。

答案 1 :(得分:2)

这是因为你这样做:

return array ($arr);

只是这样做:

return $arr;

答案 2 :(得分:1)

试试这个:

<?php
    session_start();
    function getActiveUsers() {
        $con = mysql_connect("-","-","-");
        if (!$con)
          {
          die('Could not connect: ' . mysql_error());
          }
        else {
            // connected to database successfully
        }
        mysql_select_db("casemanagers", $con);
        $result = mysql_query('select * from users');
        $arr = array();
        while($row= mysql_fetch_array($result)){ //<-- use array instead of assoc
            $arr[] = $row['Name'];
        }
        return $arr; //<-- just return the array, nothing outside it
    }

    $row = array();
    $row = getActiveUsers();
    print_r($row);

?>