2011-08-17 131 views
2

我試圖創建一個函數,以數組形式返回數據庫中的所有用戶。當我print_r的用戶,我得到一個多維數組返回:作爲一個數組返回一個函數中的MySQL行

例:

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); 

    ?> 

誰能告訴我這是爲什麼發生或步驟我可以採取修復它?謝謝。

回答

2

這回行:你應該返回$arrarray($arr)

你在那裏做的是創建一個新的數組作爲其唯一元素$arr

+0

謝謝!訣竅了。 – Jeff

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); 

?> 
2

這是因爲你做的:

return array ($arr); 

只是做:

return $arr;