【问题标题】:How to comment on a comment如何对评论发表评论
【发布时间】:2018-05-02 12:49:27
【问题描述】:

我在一个页面上有评论,现在我想要它,以便人们可以评论评论,所以如果 X 先生说“你好,我的名字是 X”,我希望 Y 先生能够对 X 和我发表评论想要某种名为under_reaction 或某种新数据库表。所以我可以在前一条评论下显示该评论。我想知道是否有人可以帮助我并就如何做到这一点给我建议。

到底需要怎么看:like this

这是评论数据库表:

这段代码显示了我的 cmets:

if(isset($actieftopicid)){
                $reacttie = $app->get_reactie($actieftopicid);
                foreach ($reacttie as $reactie) {
echo '<li class="time-label">
                            <span class="bg-red">' .$reactie['datum'] .'</span>
                            </li>

                        <li><img class="img-circle reactieafbeelding" src="/assets/images/profielfotos/' . $reactie['klant_id'] . '/' . $reactie['foto'] . '" /><div class="timeline-item reactiewidth">
                                <span class="time"><i class="fa fa-clock-o"></i> ' .$reactie['tijd'] .'</span>  

                                <h3 class="timeline-header"><a href="#">' .$reactie['voornaam'] .' ' .$reactie['achternaam'] .'</a> ...</h3>  

                                <div class="timeline-body">
                                    '.$reactie['reactie']
                                .'</div>
                                <div class="timeline-footer">
                              <button class="btn btn-default btn-xs"><i class="fa fa-reply"></i><a href="#reactie" style="color:black; margin-left: 2px;">Reageer</a></button>
                                </div>
                            </div>
                        </li>';

这会将 cmets 从您可以在上面看到的数据库中取出, ^ 它的样子,现在我需要找到一些方法来显示作为对这些 cmets 的注释的 cmets

【问题讨论】:

  • 那么你想要一个聊天应用程序吗?这对于 Stack Overflow 来说范围太广了。
  • 这太宽泛了。请尝试自己解决这个问题。当您编写了一些代码时,如果遇到特定问题,请随时回来询问该特定问题并提供相关代码。
  • 您可以添加一个包含父反应ID的字段parent_reaction,否则为NULL。因此,当您打开反应#x 时,您可以查找所有具有 parent_reaction=x 的反应以获取“子反应”
  • 我们非常乐意帮助,当您提供一些东西供我们使用时。到目前为止,您所做的只是给出了一个项目规范。详细描述并展示你做了什么,什么有效,什么无效,然后也许我们可以提供帮助。正如已经指出的那样,就目前而言,这太宽泛了。
  • OP 想知道如何在 cmets 上存储和读取/渲染 cmets。因此,SO 答案将是主要评论,答案下的 cmets 将是“子 cmets”。我会接受@YannP 他的建议,即添加一个名为parent_reaction 的数据库列来存储主要评论的id。对于主要 cmets,此字段为 NULL

标签: php html mysql twitter-bootstrap bluetooth-lowenergy


【解决方案1】:

phpMyAdmin中运行这个脚本:

ALTER TABLE `reacties` ADD `reactie_op` INT(11) DEFAULT(NULL);

创建的列(字段)将用于存储主评论的id(新添加的评论所在的评论)

$reacttie = $app->get_reactie($actieftopicid);
foreach ($reacttie as $reactie) {
    // Render main comment here

    // Then do new query for 'sub' comments
    $sub_reacttie = $app->get_sub_reactie($reactie['id']);
    foreach ($sub_reacttie as $sub_reactie) {
         // Render sub comment here
    }
}

理想的情况是第一个 get_reactie() 在一次调用中包含所有子 cmets。但是我不知道您使用的是哪个平台以及您的模型是什么样的等等,等等……您问的问题有点大,最好逐步尝试解决这个问题。

我提供的信息应该可以帮助您解决这个问题。

编辑

get_sub_reactie() 函数应该是这样的:

public function get_sub_reactie($main_reactie_id) {
    // get from database and use the $main_reactie_id in your query
    // so it only selects the rows from database where reactie_op = $main_reactie_id
}

【讨论】:

  • 在我可以使用此代码之前:$sub_reacttie = $app-&gt;get_sub_reactie($reactie['id']); 我需要为此创建一个函数吗?我不是吗?我正在使用 PDO
  • 是的,在get_reactie() 函数所在的文件中,您应该创建这个新函数。大多数功能将是相同的。唯一的区别是您需要选择WHERE reactie_op = $id(其中$id 是我答案中代码中$reactie['id'] 的值。
  • 所以我也需要做这样的事情`$id= $reactie['id'];`?
  • 我为你更新了我的答案。我认为您正在尝试在这一点上有点难以理解的东西,因为这些是基本的东西。从学习 MVC 的工作原理开始。如果你明白了,你会发现这一切都不那么复杂了。
  • 感谢这对我有用!但我还有一个小问题,如果我点击“reactie”按钮,它将如何从 main_reactie_id 设置正确的 id?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 2015-12-13
  • 1970-01-01
相关资源
最近更新 更多