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

  • 时间:
  • 浏览:2
  • 来源:大发PK10官网平台_大发PK10网投平台_大发PK10投注平台_大发PK10娱乐平台
作者:匿名 hihi 来源:似水星辰 浏览: 2011-12-27 17:38:20 字号:大 中 小

[摘要]在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下载:

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

sssss
Tags: ECShop   ECShop技巧   ECShop网店系统  
责任编辑:cc120