2011-10-22 126 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