--

-- 表的结构 `ecs_comment`

--

DROP TABLE IF EXISTS `ecs_comment`;

CREATE TABLE `ecs_comment` (

`comment_id` int(10) unsigned NOT NULL auto_increment,

`comment_type` tinyint(3) unsigned NOT NULL default '0',

`id_value` mediumint(8) unsigned NOT NULL default '0',

`email` varchar(60) NOT NULL default '',

`user_name` varchar(60) NOT NULL default '',

`content` text NOT NULL,

`comment_rank` tinyint(1) unsigned NOT NULL default '0',

`add_time` int(10) unsigned NOT NULL default '0',

`ip_address` varchar(15) NOT NULL default '',

`status` tinyint(3) unsigned NOT NULL default '0',

`parent_id` int(10) unsigned NOT NULL default '0',

`user_id` int(10) unsigned NOT NULL default '0',

PRIMARY KEY (`comment_id`),

KEY `parent_id` (`parent_id`),

KEY `id_value` (`id_value`)

) TYPE=MyISAM;

-- --------------------------------------------------------

/**

* 查询评论内容

*

* @access public

* @params integer $id

* @params integer $type

* @params integer $page

* @return array

*/

function assign_comment($id, $type, $page = 1)

{

/* 取得评论列表 */

$count = $GLOBALS['db']->getOne('SELECT COUNT(*) FROM ' .$GLOBALS['ecs']->table('comment').

" WHERE id_value = '$id' AND comment_type = '$type' AND status = 1 AND parent_id = 0");

$size = !empty($GLOBALS['_CFG']['comments_number']) ? $GLOBALS['_CFG']['comments_number'] : 5;

$page_count = ($count > 0) ? intval(ceil($count / $size)) : 1;

$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('comment') .

" WHERE id_value = '$id' AND comment_type = '$type' AND status = 1 AND parent_id = 0".

' ORDER BY comment_id DESC';

$res = $GLOBALS['db']->selectLimit($sql, $size, ($page-1) * $size);

$arr = array();

$ids = '';

while ($row = $GLOBALS['db']->fetchRow($res))

{

$ids .= $ids ? ",$row[comment_id]" : $row['comment_id'];

$arr[$row['comment_id']]['id'] = $row['comment_id'];

$arr[$row['comment_id']]['email'] = $row['email'];

$arr[$row['comment_id']]['username'] = $row['user_name'];

$arr[$row['comment_id']]['content'] = str_replace('\r\n', '
', htmlspecialchars($row['content']));

$arr[$row['comment_id']]['content'] = nl2br(str_replace('\n', '
', $arr[$row['comment_id']]['content']));

$arr[$row['comment_id']]['rank'] = $row['comment_rank'];

$arr[$row['comment_id']]['add_time'] = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);

}

/* 取得已有回复的评论 */

if ($ids)

{

$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('comment') .

" WHERE parent_id IN( $ids )";

$res = $GLOBALS['db']->query($sql);

while ($row = $GLOBALS['db']->fetch_array($res))

{

$arr[$row['parent_id']]['re_content'] = nl2br(str_replace('\n', '
', htmlspecialchars($row['content'])));

$arr[$row['parent_id']]['re_add_time'] = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);

$arr[$row['parent_id']]['re_email'] = $row['email'];

$arr[$row['parent_id']]['re_username'] = $row['user_name'];

}

}

/* 分页样式 */

//$pager['styleid'] = isset($GLOBALS['_CFG']['page_style'])? intval($GLOBALS['_CFG']['page_style']) : 0;

$pager['page'] = $page;

$pager['size'] = $size;

$pager['record_count'] = $count;

$pager['page_count'] = $page_count;

$pager['page_first'] = "javascript:gotoPage(1,$id,$type)";

$pager['page_prev'] = $page > 1 ? "javascript:gotoPage(" .($page-1). ",$id,$type)" : 'javascript:;';

$pager['page_next'] = $page < $page_count ? 'javascript:gotoPage(' .($page + 1) . ",$id,$type)" : 'javascript:;';

$pager['page_last'] = $page < $page_count ? 'javascript:gotoPage(' .$page_count. ",$id,$type)" : 'javascript:;';

$cmt = array('comments' => $arr, 'pager' => $pager);

return $cmt;

}

php实现商城评论,谁能写一个thinkphp 商城购物评论回复能例子?相关推荐

  1. 用HTML,css,boostrap写一个综合大型购物网站

    用HTML,css,boostrap写一个综合大型购物网站 首先来看看页面的效果: 有需要的可以参考 首先是首页index: <!DOCTYPE html> <html>< ...

  2. 销售管理系统 java_用Java从零写一个B2C商城,看完不要再说自己没有实战经验了!...

    一.B2C商城实战需要哪些技术点 要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报.看似简单的一个项目 ...

  3. 【python脚本】写一个刷b站评论区的脚本

    文章目录 一.脚本介绍 && 网站分析 1.1 获取视频列表 1.2 发评论 二.完整代码 三.如何使用 四.打包程序(百度网盘) 一.脚本介绍 && 网站分析 b站u ...

  4. 用HTML和css写一个简单地购物小票

    效果图 HTML代码 <!DOCTYPE html> <html><head><meta charset="utf-8" />< ...

  5. 构建自己的购物搜索引擎一:写一个简单的

    记得2010年10月9号,淘宝全网搜索引擎一淘网上线,当时不怎么关注,只是在网站上看到过新闻而己,前两个月,觉得是时候走确定自己以后要走的方向了,于是决定以后加入到搜索的行列中,此时开始关注一淘网的技 ...

  6. 一个基于RSA算法的Java数字签名例子

    ====================================================== 注:本文源代码点此下载 ================================= ...

  7. 基于SnowNLP的购物评论文本情感分析及准确率验证

    因论文涉及到SnowNLP情感分析的内容,于是对该内容进行了学习,但发现网上的资源发布更新不及时,大多数文章均发布于18年及以前.由于python版本的迭代,使得以往的资源代码有所出入,因此我对于Sn ...

  8. 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏

    怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译2011-01-26 01:10 3175人阅读 评论(3) 收藏 举 ...

  9. 用python写一个商城网页服务器并且实现数据库和网页交互

    用python写一个服务器并且实现数据库和网页交互 本文简介 1.需要实现的功能逻辑 2.设计想法 3.数据库设计 4.代码实现: 服务器类代码 应用程序框架代码 商城类代码(实现数据库交互) 5.运 ...

  10. 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理

    动态代理 代理模式是设计模式中非常重要的一种类型,而设计模式又是编程中非常重要的知识点,特别是在业务系统的重构中,更是有举足轻重的地位.代理模式从类型上来说,可以分为静态代理和动态代理两种类型. 在解 ...

最新文章

  1. UVa10795 - A Different Task
  2. python英文文献_python英文文献
  3. 【MM模块】Procurement for Consumption Material 消耗性物料的采购流程
  4. 自定义控件 - 流式布局:TagFlowLayout
  5. R语言forestmodel包使用教程
  6. vga焊接线顺序_焊接工艺问答,不做焊接也要收藏起来
  7. 视达配色教程17 灰色的色彩意象是什么
  8. 被裁半年后进大厂,他咋做到的?
  9. 100种不错的工具和资源
  10. 【Flink】Flink 基于 MailBox 实现的 StreamTask 线程模型
  11. 【Elasticsearch】Elasticsearch查询参数batched_reduce_size的解释
  12. 【Elasticsearch】wildcard、fuzzy、regexp、prefix
  13. 前端跨域问题(CORS)
  14. uniapp开发原生android插件,uni-app原生插件(native plugin)开发指南
  15. 添加jackson_Jackson,最牛掰的 Java JSON 解析器
  16. 惠普台式计算机耳机插口,hp电脑耳机插孔没声音的解决方法
  17. 一文掌握Java基础知识点(思维导图)
  18. 长文预警-超详细的熊猫烧香病毒分析_01
  19. SAP FI CO模块常用事务代码
  20. Linux 安装 Intel 网卡驱动

热门文章

  1. SAP B1打印报表实现本页合计和本单合计的方法
  2. 如何避免计算机被别人共享,win7如何防止别人偷窥电脑 win7防止别人偷窥电脑操作方法...
  3. 瑞利信道建模 matlab程序原理到实现
  4. 何宾 单片机原理及应用_stc单片机原理及应用.pdf
  5. 华为私密相册计算机找回密码,华为手机进入隐私空间的密码忘记了怎么办
  6. bios error 装系统acpi_win10系统升级后开机提示acpi bios error的解决方法
  7. extremecomponents -- 文档下载依赖使用
  8. 回到顶部功能:uniapp微信小程序回到顶部的几种方法
  9. 电子邮件归档市场现状分析
  10. PCWorld:微软Google进军社交搜索需解决八问题