mysql查询返回跟随我的用户返回此错误:未定义属性:stdClass :: $ user_id

时间:2012-04-09 10:44:04

标签: php mysql

此代码适用于我的关注者系统。我想查询数据库以显示关注我的用户。函数show_users_following_you(我的id)在第9行返回错误。有人可以解释它的来源吗?

此代码适用于我的关注者系统。我想查询数据库以显示关注我的用户。函数show_users_following_you(我的id)返回错误。有人可以解释它的来源吗?

function show_users_following_you($user_id=0){

    if ($user_id > 0){

        $follow = array();

        $fsql = "select follower_id from following where user_id='". $user_id ."'";
        $fresult = mysql_query($fsql);

        while($f = mysql_fetch_object($fresult)){
            array_push($follow, $f->user_id);
        }

        if (count($follow)){
            $id_string = implode(',', $follow);
            $extra =  " and id in ($id_string)";
        }else{
            return array();
        }
    }

    $users = array();
    $sql = "select id, username from users where status='active' $extra order by username";
    $result = mysql_query($sql);

    while ($data = mysql_fetch_object($result)){

        $users[$data->id] = $data->username;

    }

    return $users;

}

评论表格结构

两栏:

User_id对应于被关注者,Follower_id对应于谁在执行以下操作。

3 个答案:

答案 0 :(得分:2)

$fsql = "select follower_id from following
    where user_id='$user_id'";
$fresult = mysql_query($fsql);

while($f = mysql_fetch_object($fresult)){
     array_push($follow, $f->user_id);
}

您获取的对象的属性为follower_id,但您尝试阅读user_id

(另外,请确保使用$user_id或PDO来转义动态值(在本例中为mysql_real_escape_string)。就目前而言,这可能对SQL注入开放。)

答案 1 :(得分:0)

而不是

[...]
while($f = mysql_fetch_object($fresult)){
   array_push($follow, $f->user_id);
}

尝试

[...]
while($f = mysql_fetch_object($fresult)){
   array_push($follow, $f->User_id);
}

问候!

答案 2 :(得分:0)

请更正查询

“从以下user_id ='$ user_id'”

中选择follower_id

“从user_id ='”后面选择user_id。 $ user_id。“'”