后端开发|php教程
PHP+Mysql,php,实现
后端开发-php教程
这篇文章主要介绍了关于仿网易评论盖楼PHP+Mysql实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
仿淘宝商城源码单用户,vscode些什么语言,ubuntu移除指令,调整tomcat编码,sqlite排序后获取行号,消杀下水道小爬虫,多用户 php源码,谷歌seo外贸快车,黑客查看网站php源码,wordpress 安装 此网页包含重定向循环,游戏后台模板lzw
大家可能都看过网易评论的那种盖楼式的引用,这边文章就用php和mysql来实现这种效果。
免费活动的网站源码,vscode tab空格数,ubuntu++163,tomcat的端口解释,单片机数据库sqlite,百度谷歌的爬虫是什么语言编写的,国外php cms,seo推广服务外推,视频网站后台管理系统,erp软件维护模板lzw
先设计数据表来存放评论数据:
android html5 源码,vscode php调试,ubuntu 聊天,tomcat禁用8080,sqlite对高德,收款网插件,wen常用前端框架及其作用,后羿爬虫原理图片,php 数组 键值排序,疫情期间善用seo,软件学校网站模板下载,动态网页设计模板化妆品,微信公众号模板下载lzw
DROP TABLE IF EXISTS `comment`;CREATE TABLE `comment` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL, `site` varchar(128) DEFAULT NULL, `content` varchar(1000) NOT NULL, `time` datetime NOT NULL, `pid` int(10) NOT NULL, `articleid` int(10) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
其中的关键字段就是pid,保存的是引用评论的id,如果没有引用那么设为0即可。
具体的实现主要是通过递归算法来找出所有引用的评论(和无限分类菜单类似),代码如下:
get_replace_db_sql("comment",$comment); //echo $sql_str; $sqlHelper->insert_db($sql_str); }?>
"; if(is_array($str)) print_r($str); else echo$str; echo"
";
}
/*
获取文章id对应的所有评论,以数组的形式返回结果
*/
functiongetCommentByArticleId($articleid=1){
$result= array();
if(empty($articleid)
|| !is_numeric($articleid)){
return$result;
}
$sql= select * from comment where articleid = . $articleid;
global$sqlHelper;
$result= $sqlHelper->get_all($sql);
//p($result);
return$result;
}
/*
把评论数组数据转换为html格式
*/
functioncommentArr2Html($comment_arr) {
$str= \;
if(is_array($comment_arr)
&& !empty($comment_arr)){
$str.=
;
foreach($comment_arr as $key => $value) {
$str.=
;
$str.=
.$value[username] .\;
$str.= \ . $value[ ime] . 发表;
$str.=
;
global$temp_arr;
$temp_arr= array();
//这里去查找当前评论下的所有引用的评论,并格式化为html字符串
$tmpStr= \;
addCommentNode($comment_arr,$value);
krsort($temp_arr);//根据key倒叙排序数组
$tmpStr= getChildComment($temp_arr);//添加所有的引用评论
$str.= $tmpStr;
$str.= "
" . $value[content] ."
";
$str.=
;
}
$str.=
;
}
return$str;
}
/*
把temp_arr数组中保存的引用评论信息转换为html形式
*/
functiongetChildComment($temp_arr){
$htmlStr= \;
if(!is_array($temp_arr)
|| empty($temp_arr)){
return\;
}
foreach($temp_arras $value){
$tmp=
;
$tmp.= $htmlStr;
$tmp.= \ . $value[username] . 原贴:
. $value[content];
$tmp.=
;
$htmlStr= $tmp;
}
return$htmlStr;
}
/*
list代表某一文章下的全部评论列表
cmt代表当前要显示的评论
*/
functionaddCommentNode($list,$cmt){
if(isset($cmt[pid])
&& $cmt[pid] != ){
$find= findParentCmt($list,$cmt[pid]);//找寻id等于当前评论的pid的评论,返回数组。
// 递归调用,只要pid不为零,就加入到引用评论列表
addCommentNode($list,$find);
}else{
return;
}
}
/**
* 查找list中找寻id等于pid的数组项,并返回
* @param [type] $list [description]
* @param [type] $cmtpid [description]
* @return [type] [description]
*/
functionfindParentCmt($list,$cmtpid){
foreach($list as $key => $value) {
if($value[id]
== $cmtpid){
/* 用数组的方式来保存所有引用的评论 */
global$temp_arr;
$temp_arr[] =$list[$key];
//p($list[$key]);echo "
";
return$list[$key];
}
}
returnfalse;
}
$temp_arr= array();//设一个全局的数组变量来保存引用评论的信息
$list= getCommentByArticleId();//通过文章id获取所有的文章评论
$htmlStr= commentArr2Html($list);//把获取到的评论格式化转换为html形式
?>
文章评论的无限引用PHP+Mysql实现
<!--
内蒙古网友 -3-24 16:33:49 发表
//第四层引用
//第三层引用
//次顶层引用
//最顶层引用1 广州网友 原贴:
向马XX同志荣升台湾省省长表示祝贺!
2 四川网友 原贴:
四川人民发来贺电!1 广州网友 原贴:
向马XX同志荣升台湾省省长表示祝贺! 3 陕西西安网友 原贴:
陕西网友发来贺电
内蒙网友发来贺电
-->
你的名字:
联系方式或个人网站:
选择引用的评论:
选择引用123456789
评论内容酷站网软:
PHP+MySQL实现模糊查询员工信息功能
PHP+MySQL实现输入页码跳转到指定页面功能示例
PHP+mysql+ajax实现轻量级聊天室的方法