PHP запись и комментарий не отображаются в группе - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь получить сообщения и их комментарии, но при этом всегда отображается сообщение, дублирующееся с одним комментарием каждый раз см. Изображение

enter image description here

это то, что я пробовал

тест. php

$q = "SELECT posts.*, comments.*
      FROM posts
      LEFT JOIN comments
      ON comments.postid= posts.postid ";

$result = mysqli_query($connection, $q);

while($fetch=mysqli_fetch_array($result)){
    echo "<h5>".$fetch['post']."</h5>";
    echo "<p><i class='fa fa-user'></i> ".$fetch['comment']."</p>";
    echo "<textarea class='form-control' name = 'comment' placeholder='Write Comment'></textarea>
    <input type='submit' class='btn btn-lg' value='Add Comment!'>";    
}

и это моя база данных

enter image description here enter image description here

я пытаюсь показать все комментарии, связанные с этим сообщением, но не работающий

I Попробуйте эту функцию, она работает, но первый комментарий не отображается, всегда начинайте со второго комментария

функции. php

function getPostsInfoo(){
$q = "SELECT posts.*, comments.*
     FROM posts
     LEFT JOIN comments ON comments.postid=posts.postid";
$result = mysqli_query($this->connection, $q);
$posts = [];
while($fetch=mysqli_fetch_array($result)){
    if(isset($posts[$fetch["postid"]])){
        $posts[$fetch["id_cmnt"]]["comment"][] = [
            "username" => $fetch["username"],
            "comment" => $fetch["comment"],
            "cmntdate" => $fetch["cmntdate"]
        ];
        echo "<p><a href='#'> ".$fetch["username"]."</a> ".$fetch["comment"]."</p>";
    }else{
        $posts[$fetch["postid"]] = [
            "post" => $fetch["post"],
            "username" => $fetch["username"],
            "comment" => [[
                "username" => $fetch["username"],
                "comment" => $fetch["comment"],
                "cmntdate" => $fetch["cmntdate"]
            ]]
        ];
        echo "<p ><a href='#'>".$fetch["username"]."</a>".$fetch["post"]."</p>";
    }
}
return $posts;

}

test. php

$database->getPostsInfoo(); Я только добавил это, и это сработало, но я вижу результаты

enter image description here

1 Ответ

0 голосов
/ 22 марта 2020

Я нашел решение

$q = "SELECT posts.*, comments.*
      FROM posts
      LEFT JOIN comments
      ON comments.postid= posts.postid ";

      $result = mysqli_query($this->connection,$q);
      $previous_post = 0;
      while ($data = mysqli_fetch_array($result)) {
           if ($previous_post != $data['postid']) {
               echo '<h1>' . $data['post'] . '</h1>';
                $previous_post = $data['postid'];
           }
           echo '<p>' . $data['comment'] . '</p>';
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...