0

私はソーシャルネットワークに取り組んでいます。ユーザーがお気に入りのバンドや有名人​​のプロフィールを作成できるファンページテーブルと、ファンページを購読できる友達と呼ばれる別のテーブルがあります。次に、ファンページ管理者の通知にリクエストを表示するようにします。最初のSQLクエリの後、複数の値を持つファンページを返しますが、次の$ sqlクエリをエコーすると、すべてではなく1つの結果のみを選択してクエリを実行することが示されます。

したがって、基本的に、ログオンしたユーザー($ log_username)によって作成されたすべてのファンページについてファンページテーブルをクエリする必要があります。次に、それらのファンページを取得し、友達テーブルをクエリして、ユーザーのファンページのサブスクライブを要求したかどうかを確認する必要がありますか?

このコード行$fanpage_requests= "$ fansubSql"; SELECT * FROM friends WHERE user2 ='fan4' ANDaccepted = '0' ORDER BY datemade ASCを唯一の結果として出力しますが、fan3とfan4の両方にリクエストがあるため、2つの結果が必要です。

助けてくれてありがとうマイケル

$fanpage_requests = '';

$fansql = "SELECT created_by, fanpage_name FROM `fanpages`  WHERE created_by = '$log_username' ";
$fanquery = mysqli_query($db_conx, $fansql);
$fannumrows = mysqli_num_rows($fanquery);

if($fannumrows < 1){
    $fanpage_requests = 'No friend requests';
} else {

    while($row = mysqli_fetch_array($fanquery, MYSQLI_ASSOC)) {
        $fanpage_name = $row["fanpage_name"];
        $created_by = $row["created_by"];

        $fansubSql = "SELECT * FROM friends WHERE user2='$fanpage_name' AND accepted='0' ORDER BY datemade ASC";
        $fansubQuery = mysqli_query($db_conx, $fansubSql);
        $fansubNumrows = mysqli_fetch_row($fansubQuery);
        $fanpage_requests = "$fansubSql";

        if($fansubNumrows < 1){
            $fanpage_requests = "blah blah"; 
        }

        while ($fansubRow = mysqli_fetch_array($fansubQuery, MYSQLI_ASSOC)) {
            $fansubreqID = $fansubRow["id"];
            $fansubuser1 = $fansubRow["user1"];
            $fansubdatemade = $fansubRow["datemade"];
            $fansubdatemade = strftime("%B %d", strtotime($datemade));

            $fansubthumbquery = mysqli_query($db_conx, "SELECT avatar FROM users WHERE username='$user1' LIMIT 1");
            $fansubthumbrow = mysqli_fetch_row($thumbquery);
            $fansubuser1avatar = $thumbrow[0];
            $fansubuser1pic = '<img src="user/'.$user1.'/'.$user1avatar.'" alt="'.$user1.'" class="user_pic">';

            if($fansubuser1avatar == NULL){
                $fansubuser1pic = '<img src="images/avatardefault.jpg" alt="'.$user1.'" class="user_pic">';
            }

            $fanpage_requests .= '<div id="friendreq_'.$fansubreqID.'" class="friendrequests">';
            $fanpage_requests .= '<a href="user.php?u='.$fansubuser1.'">'.$fansubuser1pic.'</a>';
            $fanpage_requests .= '<div class="user_info" id="user_info_'.$fansubreqID.'">'.$fansubdatemade.' <a href="user.php?u='.$fansubuser1.'">'.$fansubuser1.'</a> requests friendship<br /><br />';
            $fanpage_requests .= '<button onclick="fanReqHandler(\'accept\',\''.$fansubreqID.'\',\''.$fansubuser1.'\',\'user_info_'.$fansubreqID.'\')">accept</button> or ';
            $fanpage_requests .= '<button onclick="fanReqHandler(\'reject\',\''.$fansubreqID.'\',\''.$fansubuser1.'\',\'user_info_'.$fansubreqID.'\')">reject</button>';
            $fanpage_requests .= '</div>';
            $fanpage_requests .= '</div>';
        }
    }
}

?>

4

1 に答える 1

0

ドキュメントを読んでください。mysqli_fetch_rowは数値を返しません。クエリから 1 つのレコードを返します。mysqli_fetch_rowドキュメントの例を見てください。すべてのレコードを取得するには、ループ内で使用する必要があります。

クエリによって返される行数を知るには、mysqli_num_rowsを使用します。

于 2013-03-13T11:49:51.147 に答える