2014-01-10 37 views
1

的方法:陣列返回1個以下行 - PHP

public function get_connections($member_id) { 
      global $db; 

      $sql = "SELECT `connection_id` FROM `my_connections` WHERE 
        `member_id` = '".$member_id."'"; 

      $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0);  

      $list = mysql_fetch_array($result); 
      while($list = mysql_fetch_array($result)) { 

       $connection_list[] = $list['connection_id']; 

      } 


      return $connection_list;    
     } 

哪裏調用它:(注:上述方法是從my_connections類)

$mc = new my_connections; 
$list = $mc->get_connections('206'); 
print_r($list); 

的print_r的顯示器1個以下行比在數據庫,特別是第一行被省略。

+0

@MattClark是 - 如果會員只有1個連接時,它什麼都沒有返回,所以我很確定它省略了第一條記錄。 –

+0

考慮切換到mysqli,因爲mysql已被棄用。 – frosty11x

回答

13
$list = mysql_fetch_array($result); // <--- 
while($list = mysql_fetch_array($result)) { 

刪除第一行。你正在取得一連串的勝利,並且無所作爲。

+0

工作 - 謝謝。我不能接受在11分鐘的答案:) –

+1

尼斯Catch傑夫 – Rottingham

+1

謝謝@Rottingham – Jessica

3

另外,while循環是不必要的。你可以簡單地鍵入

global $db; 
$sql = "SELECT `connection_id` FROM `my_connections` WHERE 
       `member_id` = '".$member_id."'"; 

$result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0); 

return $result->fetch_all(MYSQLI_ASSOC); 

你一定會認爲它僅包含CONNECTION_ID的,因爲這是所有要查詢的數據庫爲