0

このコードは私のフォロワーシステム用です。データベースにクエリを実行して、自分をフォローしているユーザーを表示したいと思います。関数show_users_following_you(my id)が9行目にエラーを返しています。誰かがそれがどこから来ているのか説明できますか?

このコードは私のフォロワーシステム用です。データベースにクエリを実行して、自分をフォローしているユーザーを表示したいと思います。関数show_users_following_you(my 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;

}

コメントテーブル構造は

2列:

User_idはフォローされているユーザーに対応し、Follower_idはフォローしているユーザーに対応します。

4

3 に答える 3

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インジェクションに対して開かれている可能性があります。)

于 2012-04-09T10:48:07.893 に答える
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);
}

よろしく!

于 2012-04-09T10:48:53.730 に答える
0

クエリを修正してください

"以下からfollower_idを選択しますwhereuser_id='$ user_id'"

"以下からuser_idを選択しますwhereuser_id='"。$user_id。"'"

于 2012-04-09T10:49:45.403 に答える