网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > 网络知识 > 正文

ECSHOP首页添加最新交易滚动显示功能

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/07/04

以下是网学网为您推荐的网络知识-ECSHOP首页添加最新交易滚动显示功能,希望本篇文章对您学习有所帮助。

  在ECSHOP首页添加最新交易滚动显示功能,想要显示的无非就是什么人在什么时间购买了什么东西,这样分析下来我们需要去从数据库读取出来信息。从网上找到ecshop的数据字典,看了看 和咱们相关的表有三个ecs_order_info,ecs_order_goods,ecs_users,分别存储了订单信息,订单对应的商品信息和购买商品的用户信息。这三个表同 user_id,order_id和goods_id三个key来联系,下面我们要写出sql语句从中取出我们需要的那些信息,sql语句如下:

SELECT ecs_users.user_name, ecs_order_goods.goods_id, 
ecs_order_goods.goods_name, order_info.add_time
FROM ecs_users,
(
SELECT order_id, user_id, add_time
FROM ecs_order_info
ORDER BY ecs_order_info.add_time DESC
LIMIT 0 , 20
) AS order_info,
ecs_order_goods
WHERE order_info.order_id = ecs_order_goods.order_id
AND order_info.user_id = ecs_users.user_id;

  上面语句的意思从ecs_order_info里面提取前20个交易,然后根据order_id,goods_id和user_id的关联来获取用户名、商品名、商品id和订单时间。搞定了sql语句, 下面我们就要按照ecshop的模式来写个函数,这个函数从通过数据库获取sql语句的内容,然后把这个sql的record封装到一个array里面,传给smarty模板来使用。 下面给出代码,大家参考一下:

/** 
* 调用获取最新购买者和物品檠? *
* @access private
* @return array
*/
function index_get_recent_buy_query()
{
$sql = ''SELECT ecs_users.user_name, ecs_order_goods.goods_id,
ecs_order_goods.goods_name, ecs_order_info.add_time
FROM ecs_users,
(
SELECT order_id, user_id, add_time
FROM ecs_order_info
ORDER BY ecs_order_info.add_time DESC
LIMIT 0 , 20
) AS ecs_order_info,
ecs_order_goods
WHERE ecs_order_info.order_id = ecs_order_goods.order_id
AND ecs_order_info.user_id = ecs_users.user_id;'';

$all = $GLOBALS[''db'']->getAll($sql);

$arr = array();

foreach ($all AS $idx => $row)
{
$arr[$idx][''username''] = $row[''user_name''];
$arr[$idx][''goodName''] = $row[''goods_name''];
$arr[$idx][''goodID''] = $row[''goods_id''];
$arr[$idx][''add_time''] = local_date(
$GLOBALS[''_CFG''][''date_format''], $row[''add_time'']);
}

return $arr;
}

  上面代码使用了$GLOBALS[''db'']->getAll($sql);来获取数据库里面记录,这个db是在init.php里面系统初始化加载好的全局变量,他负责和数据库交互,获取 数据等功能。有时间我写几篇ecshop代码分析的文章,详细讲解一下ecshop的初始化过程,大家就可以了解ecshop高质量的代码了。下面的那个foreach做的而 工作其实就是把数据封装到array,smarty在模板处理时数组友好的。上面只是获取了array,下面的语句是赋值array到smarty模板”

$smarty->assign(''recent_buys'',     index_get_recent_buy_query());//获取最新的购买者信息 

  把这句话加到index.php的类似的地方就可以,基本上在80多行,ecshop集中模板赋值的地方。在面我们来看看赋过去的值smarty模板是怎么用的。

  我们建立一个BusinessActivities.lbi来放我们的smarty模板内容。下面是代码:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<!--{if $recent_buys}-->
<ul>
{foreach from=$recent_buys item=buy_info}
<li>· {$buy_info.username} 在 {$buy_info.add_time} 买了<a href=''goods.php?id={$buy_info.goodID}''> {$buy_info.goodName}</a></li>
{/foreach}
</ul>
<!-- {/if} -->

  大家注意看上面的是来说明你的模板内容基本信息的,我这里是utf8,如果你是gbk,要改成gbk哦。 是和我们上面php程序里面的$smarty->assign(’recent_buys’, index_get_recent_buy_query())对应的,若果你给recent_buys赋值, 并且这个值不为空或者0的话才显示咱们的模板内容。我们重点看,foreach是smarty模板内置函数,其 主要作用是遍历传入的数组,然后生成内容,类似于其他语言里面的foreach。这句话就是遍历recent_buys,然后把每次遍历的项做buy_info,其实这个buy_info 就是咱们数据的2维数组的第二维了。你可以直接用{$buy_info.goodName}这种形式来调用你数组传入的内容。用smarty模板绝对的数据和现实分离,很爽的。 

  下面你在你需要显示的地方加入就可以显示了。

提示:sql调用的时候一定要注意表名要换成你自己的表名

ECShop下载:

ECShop GBK v2.7.3 Release 1106下载

界面预览

  • 软件语言:简体中文
  • 运行环境:PHP/Mysql
  • 软件授权:共享版
  • 更新时间:2012-11-9 9:52:01
  • 相关链接:Home Page

本文转自:http://www.meowpet.com/xc-257-1.html

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号