mysql_fetch_arrayが期待通りに機能しないための入れ子のwhileループ

私は mysql_fetch_array システムを使ってデータベースからデータを取得し、
mysql_fetch_array
のwhileループを作成し、そのループiの中で私のウェブサイトのフィードシステムを作ろうとしていますループ中にもう一度同じことを繰り返すが、ネストされたwhileループは一度しか実行されず、行が繰り返されないという問題がある….ここでコードはいくつかの関数とOOPを使用しているが、

私は代替案を考えましたが、まだvazを試していませんでした。つまり、whileループの代わりにforループを使用するだけです。

public function get_feeds_from_my_friends(){
    global $Friends;
    global $User;
    $friend_list = $Friends->create_friend_list_ids();
    $sql = "SELECT feeds.id, feeds.user_id, feeds.post, feeds.date FROM feeds WHERE feeds.user_id IN (". $friend_list. ") ORDER BY feeds.id DESC";
    $result = mysql_query($sql);
    while ($rows = mysql_fetch_array($result)) {
            $id = $rows['user_id'];
            $dp = $User->user_detail_by_id($id, "dp");
            $user_name = $User->full_name_by_id($id);
            $post_id = $rows['id'];

            $final_result = "<div class="sharedItem">";
            $final_result .= "<div class="item">";
            $final_result .= "<div class="imageHolder"></div>";
            $final_result .= "<div class="txtHolder">";
            $final_result .= "<div class="username"> " . $user_name  . "</div>";
            $final_result .= "<div class="userfeed"> " . $rows['post'] . "</div>";
            $final_result .= "<div class="details">" . $rows['date'] . "</div>";
            $final_result .= "</div></div>";
            $final_result .= $this->get_comments_for_feed($post_id);
            $final_result .= "</div>";

            echo $final_result;
        }
}

public function get_comments_for_feed($feed_id){
    global $User;

    $sql = "SELECT feeds.comments FROM feeds WHERE feeds.id = " . $feed_id . " LIMIT 1";
    $result = mysql_query($sql);
    $result = mysql_fetch_array($result); 
    $result = $result['comments'];
    $comment_list = get_array_string_from_feild($result);

    $sql = "SELECT comment_feed.user_id, comment_feed.comment, comment_feed.date FROM comment_feed ";
    $sql .= "WHERE comment_feed.id IN(" . $comment_list . ") ORDER BY comment_feed.date DESC";
    $result = mysql_query($sql);
    if(empty($result)){ return "";}
    else {
        while ($rows = mysql_fetch_array($result)) {
                $id = $rows['user_id'];
                $dp = $User->user_detail_by_id($id, "dp");
                $user_name = $User->full_name_by_id($id);
                return "<div class="comments"><div class="imageHolder"></div>
                            <div class="txtHolder">
                                <div class="username"> " . $user_name  . "</div>
                                <div class="userfeed"> " . $rows['comment'] . "</div>
                                <div class="details">" . $rows['date'] . "</div>
                            </div></div>";

        }       

    }
}
ベストアンサー

内側のループはループの最初の繰り返し内に戻ります。ループする必要がありますか?確信しているのなら、それは常に最初の行になるでしょう。最初の行をつかまえてみませんか?

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です