2010
Apr
24
看到WordPress有评论嵌套功能,羡慕不已。为了更一步完善用户体验,终于完成了评论嵌套功能。该功能有何好处就不说了,相信大家都知道,下面来说说原理。
首先来看一个嵌套的原型:
第一张图是数据库的内容,第二张图是嵌套的页面显示效果,代码如下:
header("content-type:text/html; charset=utf-8");
$connect = mysql_connect('localhost', 'root', '123456');
mysql_select_db("wz");
mysql_query("set names 'utf8'");
$sql = "select * from tree";
$result = mysql_query($sql);
$arr = array();
while($row = mysql_fetch_array($result)){
array_unshift($arr, $row);
}
function getChild($arr, $father, $floor){
$floor++;
foreach($arr as $row){
if($row["parent"] == $father){
echo "<div class='comment_".$floor."'>";
echo $row["name"];
getChild($arr, $row["id"], $floor);
echo "<br>";
echo "</div>";
}
}
}
foreach($arr as $row){
if($row["parent"] == ""){
echo "<div class='comment_0'>";
echo $row["name"];
echo "<br>";
getChild($arr, $row["id"], "1");
echo "</div>";
}
}
样式这里就不说了,相信琢磨一下就知道了。
评论嵌套其实也不难,就是将一个树打印出来,主要用到递归思想。踏雪残情提到了分页可能有点难处理,说实话,那时候我还没考虑到分页,后来想了一会,可能会有点小麻烦。后来是这么处理的:分页查询的时候加了一个条件,分页查询的只是没有被回复的评论,同时还查询一次所有的评论,显示是结合这两个查询所得到的结果显示出来。
要做评论嵌套,必须满足一个条件:数据库中回复的那条评论要有被回复的那条记录的ID,否则无法嵌套。之前老九说看emlog能不能嵌套,看过emlog的数据库后,发现不能嵌套,没这个字段。
呵呵,完成了这个功能有点小高兴,自己测试了一会,没发现啥问题,如果大家有发现问题请留言^_^
本站原创,转载请标明:来自追梦博客(http://www.wuleilei.com/)
相关文章
新版博客上线啦 (2011-03-07)
Gravatar头像原理 --- 博客已支持Gravatar头像 (2009-11-07)
又回到了原点 (2010-01-21)
继续博客点名活动 (2010-06-27)
PHP中的类 (2009-06-25)
博客新版程序上线了 (2009-08-21)
PHP获取当前url的函数 (2009-10-27)
PHP基础易混淆函数比较 (2010-10-25)
PHP二维数组按照一个字段排序 (2010-12-28)
PHP无刷新上传文件原理 (2010-12-10)
看看他们的脚印
晚上和爸妈吃个饭。 (2月6日)
装修好累哟
(2月4日)
《斯巴达克斯:复仇》 (2月3日)
白
JankoAtWarpSpeed对...