如何循环输出评论的评论? [复制]

Posted

技术标签:

【中文标题】如何循环输出评论的评论? [复制]【英文标题】:How to output comments on comments in cycle? [duplicate] 【发布时间】:2013-12-20 01:47:59 【问题描述】:

结构表注释:

id (int 11)
NewsIdn (varchar 10)
CommentsIdn (varchar 10) //
ForCommentsIdn (varchar 10) //have CommentsIdn comments(answers) reply to which users 
Text (varchar 100)
DateCreate (datetime)

我想为 cmets 输出 cmets 和 cmets(answers),即。页面结构输出数据:

-- comment 1
-----answer on comment 1
--------answer on answer on comment 1 (№1)
--------answer on answer on comment 1 (№2)
--------answer on answer on comment 1 (№3)
----------answer on answer №3 on answer on comment 1
-------------
---------------N
                       ***
                       ***
                       ***
-- comment 2
-----answer on comment 2
--------answer on answer on comment 2 (№1)
--------answer on answer on comment 2 (№2)
--------answer on answer on comment 2 (№3)
----------answer on answer №3 on answer on comment 2
-------------
---------------N

                       ***
                       ***
                       ***
-- comment N
-----answer on comment N
--------answer on answer on comment N (№1)
--------answer on answer on comment N (№2)
--------answer on answer on comment N (№3)
----------answer on answer №3 on answer on comment N

AND IE.

我收到第一条评论:

SELECT * FROM COMMENTS WHERE NewsIdn='1122121' // value NewsIdn as example

但是如何在 cmets 上循环输出 cmets 呢?

请告诉我如何制作它?

【问题讨论】:

这是只属于一个表吗?为什么不进行标准化! @Nesmar 我不知道答案,如果您对其他表格有答案,请告诉我。 @jeroen 没关系 【参考方案1】:

是的,您必须需要标准化... 我为您创建了一些表格。

用户表

id(PK) 名称

新闻表

id (int 11) 文本 日期创建(日期时间) user_id(FK 与用户表)

评论表

id (int 11) 文本 日期创建(日期时间) news_id(int 11)(带有新闻表的外键) 用户身份

评论表的子 cmets

id (int 11) cmets_id(带有 cmets 表的 FK) 文本 user_id(int)(FK 与用户表) 日期创建(日期时间)

现在为每个评论编写以下查询

对于循环,只需在 cmets 表中使用一个循环。然后你会得到每个 cmets 的所有答案。

$query=query("select id from news");
while($q=mysql_fetch_assoc($query))
//Here is each news
$query1=query("SELECT comments_id,comments FROM comments c WHERE c.news_id=$q['id']");
//Here is each comment
   while($q1=mysql_fetch_assoc($query1))
   $query2=query("
                  SELECT sub.text,u.user_name FROM sub_comments AS sub
                  LEFT JOIN comments AS c
                  ON c.id=sub.comments_id
                  INNER JOIN user AS u
                  ON u.id=sub.user_id
                  WHERE c.id=$q1['comments_id']
                 ");
                 while($q2=mysql_fetch_assoc($query2))
                    //Here are sub comments for each comments  
                    print $q2['text'];
                 
    

【讨论】:

这个问题的答案有多准确? 我正在为这个结构写查询。可能是 OP 可以理解“如何在循环中输出 cmets 上的 cmets?”我会尽快编辑我的答案 你的答案在 cmets 1 级上得到答案,但有问题我问如何在 cmets 上获得所有答案,我在 cmets 上显示结构答案。我需要循环,它可以帮助输出具有 y 结构答案的所有答案。 为什么在上面的查询中不使用 php 循环循环? 请看我的更新

以上是关于如何循环输出评论的评论? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jsf 2.0 中的不可见评论? [复制]

如何在链接的Jira问题之间复制评论?

Instagram如何布局评论textview和用户名textview合二为一? [复制]

如何在 xml 文件中评论(在 android studio 布局文件中)? [复制]

如何从 Android Studio 中的特定文件中删除所有评论? [复制]

怎么复制b站手机客户端评论区的文字??(因为我常常看一些mad,有的图包和音乐都有网址在评论区发出