как отображать комментарии на пост - PullRequest
0 голосов
/ 19 марта 2020

У меня есть небольшие пользователи блога, которые могут добавить новое сообщение, а другие могут комментировать это сообщение (Сообщение работает отлично, комментарии тоже работают)

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

function getPostInfoo(){
  if($this->num_members < 0){
    $q = "SELECT * FROM ".TBL_POSTS;
    $result = mysqli_query($this->connection, $q);
    $fields = array();

    while($fetch=mysqli_fetch_array($result)){
        echo "
        <h3>".$fetch['post']."</h3>
        <p>".$fetch['username']."</p>";
    }
    $this->num_members = mysqli_fetch_array($result);
  }
  //return
  return $fields;
}
function getComment(){

  $q = "SELECT ".TBL_POSTS.".*, ".TBL_COMMENTS.".*
         FROM ".TBL_POSTS."
         INNER JOIN ".TBL_COMMENTS." ON ".TBL_COMMENTS.".postid=".TBL_POSTS.".postid";
  $result = mysqli_query($this->connection, $q);
  /* Error occurred, return given name by default */
  if(!$result || (mysqli_num_rows($result) < 1)){
     return NULL;
  }
  $fields = array();
  while($fetch=mysqli_fetch_array($result)){
      $fields[] = "<p><a href='#'>".$fetch['username'].": </a>".$fetch['comment']."<br>
                      <small class='text-muted'>".$fetch['cmntdate']."</small>
                    </p>

      ";
   }
  /* Return result array */
  return $fields;
 }

test. php

echo "<div>";
$myList2 = $database->getPostInfoo();
if (is_array($myList2) || is_object($myList2)){
  foreach($myList2 as $arrayItem2){
    echo $arrayItem2;

  }
}else {
     echo      "No Posts yet.";
}
echo "</div>
<div>";
$myList = $database->getComment();
if (is_array($myList) || is_object($myList)){
    foreach($myList as $arrayItem){
        echo $arrayItem;
    }
}else {
   echo "No comments yet.";
}

<form method='post' action='functions.php' method='POST'>
<div class='form-group' >
    <textarea class='form-control' name = 'comment' placeholder='Write Comment'></textarea>
    <input type='hidden' name='postid' value='1'>
    <input type='hidden' name='comment_sub' value='1'>
    <input type='submit' value='Add Comment!'>
</div>
</form>

</div>";

Мне нужно сделать так, чтобы каждый комментарий отображался в отдельном сообщении и отображался в текстовой области комментариев. сообщение

Пожалуйста, смотрите изображение https://i.stack.imgur.com/A4D55.jpg

Ответы [ 2 ]

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

Попробуйте эту функцию:

function getPostsInfo(){
$q = "SELECT ".TBL_POSTS.".`id`,".TBL_POSTS.".`post`, ".TBL_POSTS.".`username`, ".TBL_COMMENTS.".`username` as comment_username, ".TBL_COMMENTS.".`comment`, ".TBL_COMMENTS.".`cmntdate` 
     FROM ".TBL_POSTS."
     LEFT JOIN ".TBL_COMMENTS." ON ".TBL_COMMENTS.".postid=".TBL_POSTS.".postid";
$result = mysqli_query($this->connection, $q);
$posts = [];
while($fetch=mysqli_fetch_array($result)){
    if(isset($posts[$fetch["id"]])){
        $posts[$fetch["id"]]["comments"][] = [
            "username" => $fetch["comment_username"],
            "comment" => $fetch["comment"],
            "cmntdate" => $fetch["cmntdate"]
        ];
    }else{
        $posts[$fetch["id"]] = [
            "post" => $fetch["post"],
            "username" => $fetch["username"],
            "comments" => [[
                "username" => $fetch["comment_username"],
                "comment" => $fetch["comment"],
                "cmntdate" => $fetch["cmntdate"]
            ]]

        ];
    }
}
return $posts;

}

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

Вам нужно получать по одному сообщению за раз, а затем извлекать его комментарии.

Итак, ваш тест. php должен выглядеть как тест. php? id = post_id

Где post_id - это уникальный идентификатор вашего сообщения, основанный на вашей структуре базы данных

Может быть, например, 1 или 2, или если вы используете автоинкрементный идентификатор

Затем вы можете добавить следующий код в начале вашего теста . php, чтобы получить идентификатор сообщения

$post_id = isset($_GET['id']) ? $_GET['id'] : '';

Выборка сообщение и комментарий от вашей таблицы, используя значение $ post_id

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...