手动调用Ecshop分页函数对数据进行分页

在做对ecshop二次开发的过程中,难免避免不了手动对一些数据进行读取显示,其中不得不涉及到的就是分页功能,当然我们可以使用第三方的分页类对其进行分页功能的实现,这样的类很多也很杂,笔者在google上也尝试过,但终究也没有找到一个喜欢且合适分页类,当然这里也就不多说了。

本文主要是想帮助做ecshop二次开发需要用到分页功能开发人员快速的调用ecshop自带的分页方法,这样既可以保证分页风格一致而且免去了使用第三方分页类的麻烦,好废话不多说,详见以下的实现步骤:

1.在模板文件上加上分页功能的显示代码,即dwt中引入lib库文件

在.dwt模板文件放分页页码显示的地方加入如下代码即可:<!-- #BeginLibraryItem "/library/pages.lbi" --><!-- #EndLibraryItem -->

2.php程序读取调用分页函数

在.php(一般是user.php或category.php之类的文件)程序文件中对应的逻辑判断中加入相关的执行代码

//分页处理,分页尺寸

$size = 10;

$page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;

$record_count = $db->getOne("SELECT COUNT(*) FROM " .$ecs->table('需读取的数据表名'). " WHERE 相关判断条件");

$pager = get_pager('当前php文件', array('act' => $action), $record_count, $page, $size);

$ad_user_list = 数据读取函数($user_id, $size, $pager['start']);

//分页数据传给模板

$smarty->assign('pager',  $pager);

3.修改原有的数据读取函数,增加$num,$start两个参数的传递和处理,这儿的修改就得根据你自己的数据读取函数自行修改了,函数一般都写在在lib_transaction.php文件中

可参考下面简单的例子实现

function 数据读取函数($user_id, $num = 10, $start = 0)

{

    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('需读取的数据表名'). " WHERE 相关判断条件";

    $arr = array();

    $res = $GLOBALS['db']->SelectLimit($sql, $num, $start);

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

    {

$arr[] = array('user_id'         => $row['user_id'],

  'user_name'       => $row['user_name'],

  'valid_order'     => $row['valid_order'],

  'end_time'        => $row['end_time']);

}

    return $arr;

}

4.OK结束,现在可以测试一下读取的数据是否有了分页功能了,其实ecshop分页就这么简单的

最后实现的分页效果如下:


来源:http://www.ljzxzxl.com/201106/website/ecshop-411.html


你可能感兴趣的:(手动调用Ecshop分页函数对数据进行分页)