我要做的是下图的样式,你可以参考下面两个网站的留言板。它们的实现原则是相同的。

畅言留言板风格:


网易以下的风格:


原理

您需要在评论表中添加两个主要字段:id和PID,并添加其他字段,如文章ID、回复时间、回复内容、对人的答复。

pid是当前正在进行的评论的ID。

正如你从上面看到的,它的每个层的PID是他以前评论的ID。仔细看看上面的布局。它很像PHP中的多维数组吗如果你能想到的话,那很容易。

实现方法

1。前台:这是更简单的div嵌入式师随后的边界和边缘填充div设置


















2、背景:使用两个递归。首先,我们使用递归对数据库中的结果进行重组和重组,然后递归地输出上面的前向代码。

评论表的结构和内容如下



然后直接读取表中的所有注释。




阵列
(
{ 0 }数组
(
{ 1
{
{ 1个注释
)

{ 1 }数组
(
{ 2
{
{ 2个注释
)

{ 2 }数组
(
{ 3
{
{ 3个注释
)

{ 3 }数组
(
{ 4
{ 1
4注释1注释
)

{ 4 }数组
(
{ 5
{ 1
5注释1注释
)

{ 5 }数组
(
{ 6
{ 2
6注释2注释
)

{ 6 }数组
(
{ 7
{ 4
7注释4注释
)

{ 7 }数组
(
{ 8
{ 7
8注释7注释
)

{ 8 }数组
(
{ 9
{ 8
9注释8注释
)

{ 9 }数组
(
{ 10
{ 8
10注释8注释
)

)



然后我们需要把这个数组放在上面的留言板上。

数组是上面读取的数组,首先取出默认PID为空,然后递归,并将PID作为当前注释ID的数组。




公共静态函数树($数组,$子 子
{
$ { };
foreach(数组$ V){
如果($ V { 'pid} = = $ PID){
$ V { $孩子} =自我::树($array美元美元,孩子,V { 'id' });
$;
}
}
返回$ $;
}



重组后,您可以得到以下数组。您可以看到,该数组的样式与前面的注释样式非常相似。




阵列
(
{ 0 }数组
(
{ 1
{
{ 1个注释
{子数组
(
{ 0 }数组
(
{ 4
{ 1
4注释1注释
{子数组
(
{ 0 }数组
(
{ 7
{ 4
7注释4注释
{子数组
(
{ 0 }数组
(
{ 8
{ 7
8注释7注释
{子数组
(
{ 0 }数组
(
{ 9
{ 8
9注释8注释
{子数组
(
)

)

{ 1 }数组
(
{ 10
{ 8
10注释8注释
{子数组
(
)

)

)

)

)

)

)

)

{ 1 }数组
(
{ 5
{ 1
5注释1注释
{子数组
(
)

)

)

)

{ 1 }数组
(
{ 2
{
{ 2个注释
{子数组
(
{ 0 }数组
(
{ 6
{ 2
6注释2注释
{子数组
(
)

)

)

)

{ 2 }数组
(
{ 3
{
{ 3个注释
{子数组
(
)

)

)



在获得上面的数组后,可以使用递归输出。




公共静态函数traversearray(数组)
{
foreach(数组$ V){
;
echo $ V { 'content' };
如果($ V {''}){
自::traversearray($ V {''});
}
;

}

}



然后你可以看到




其原理是重构数组并遍历输出。

以上是PHP来实现网易的全过程和留言板螺纹畅言的风格,你也可以尝试进行创新,本文希望对大家的学习有所帮助。