2011-10-22 109 views
0

下面的函數設置爲:查詢返回不正確的結果在功能

  1. 從我的數據庫收集user_id,因爲你可以看到下面WHERE subscriber = '$user'。然後:
  2. 返回可能的多個值user_id

但是,當我嘗試使用此函數時,它只收集了一個數組,其密鑰爲0,值爲user_id。出於顯而易見的原因,我希望數組中的數字值包含在user_id列的數據庫中,密鑰爲user_id

function get_subscribitions($user) 
{ 
    $user = mysql_real_escape_string ($user); 

    $sql = "SELECT 'user_id' FROM `subscribe` WHERE subscriber = '$user'"; 

    $result = mysql_query($sql); 

    $rows = array(); 

    while ($row = mysql_fetch_assoc($result)) { 
     $rows[] = $row; 
    } 

    mysql_free_result($result); 

    return $rows; 
} 

任何人都可以查明我在哪裏導致這些相關問題的錯誤?

任何幫助表示感謝,提前謝謝!

回答

3

缺少它應該是:

function get_subscribitions($user) 
{ 

$user = mysql_real_escape_string ($user); 

    $sql = "SELECT user_id FROM `subscribe` WHERE subscriber = '$user'"; 

$result = mysql_query($sql); 

    $rows = array(); 

    while ($row = mysql_fetch_assoc($result)) { 
     $rows[] = $row['user_id']; 
    } 

    mysql_free_result($result); 

    return $rows; 
} 

有查詢不必要的報價,你不讀$行排列正確

+0

以什麼方式我沒有讀取$ row arr唉好嗎?我實現了你的代碼並得到了一個未定義的索引,你知道爲什麼會發生這種情況嗎? – NorS

+0

如果你有2個結果 - 5和11,使用'$ rows [] = $ row;'你結束了$ rows = array(0 => array('user_id'=> 5),1 =>數組('user_id'=> 11));'。使用我的代碼,你用'$ rows = array(0 => 5,1 => 11)'結束了。這不是你想要的嗎? – Nikoloff

+0

這正是我想要的。非常感謝。但是,當我使用你的代碼時,user_id變得不確定,我真的不知道該怎麼做。 – NorS

3

嘗試,而不是

$sql = "SELECT user_id FROM `subscribe` WHERE subscriber = '$user'"; 

注意單引號從各地user_id

相關問題