900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 帝国cms搜索php分页 帝国cms灵动标签分页的实现方法

帝国cms搜索php分页 帝国cms灵动标签分页的实现方法

时间:2023-12-18 04:08:58

相关推荐

帝国cms搜索php分页 帝国cms灵动标签分页的实现方法

羊年到来之际,终于解决了灵动标签分页的问题了.一直以来在论坛有很多人帮助了我,总是索取没有奉献很过意不去,所以这里我也分享一下经验!

大家知道灵动标签在效率方面和使用上极其灵活,不象其他的标签你要掌握好要动很多的脑子,操作起来还很麻烦,稍不留神不是这里就是那里错误了.并且其他标签在打开时效上也不如灵动标签,但是一直以来灵动标签有一个致命的问题就是分页问题, 想想看,如果你的数据越来越多,你不可能放一页吧,正因为这个,列表页我一直不用灵动标签,这也是没有办法.所以一直想把灵动标签这个问题解决了.搜了一下论坛,问这个问题的朋友也不少,很多问答是,标签无法分页,就完了,真的这样吗,其实不然的.

我这里解决的方法是用了李炎恢老师的方法,这里要感谢他,向他致敬!同时也要感谢朋友SweatHeart.Co.给与的大力帮助!

解决方法如下:

1,复制下面这个两个函数,放入帝国e/class/userfun.php文件内

function _page($_sql,$_size) {

//将里面的所有变量取出来,外部可以访问

$empire=new mysqlquery();

global $_page,$_pagesize,$_pagenum,$_pageabsolute,$_num;

if (isset($_GET['page'])) {

$_page = $_GET['page'];

if (empty($_page) || $_page < 0 || !is_numeric($_page)) {

$_page = 1;

} else {

$_page = intval($_page);

}

} else {

$_page = 1;

}

$_pagesize = $_size;

$_num = $empire->num($_sql);

if ($_num == 0) {

$_pageabsolute = 1;

} else {

$_pageabsolute = ceil($_num / $_pagesize);

}

if ($_page > $_pageabsolute) {

$_page = $_pageabsolute;

}

$_pagenum = ($_page - 1) * $_pagesize;

}

/**

* _paging分页函数

* @param $_type

* @return 返回分页

*/

function _paging($_type) {

global $_page,$_pageabsolute,$_num;

if ($_type == 1) {

echo '

';

echo '

';

for ($i=0;$i

if ($_page == ($i+1)) {

echo '

'.($i+1).'';

} else {

echo '

'.($i+1).'';

}

}

echo '

';

echo '

';

} elseif ($_type == 2) {

echo '

';

echo '

';

echo '

'.$_page.'/'.$_pageabsolute.'页 | ';

echo '

共有'.$_num.'个 | ';

if ($_page == 1) {

echo '

首页 | ';

echo '

上一页 | ';

} else {

echo '

首页 | ';

echo '

上一页 | ';

}

if ($_page == $_pageabsolute) {

echo '

下一页 | ';

echo '

尾页';

} else {

echo '

下一页 | ';

echo '

尾页';

}

echo '

';

echo '

';

}

}

2 列表模板中写入分页函数取值,这里写一个样例供大家参考

global $_pagesize,$_pagenum;

_page("SELECT hd_ecms_shop.id FROM hd_ecms_shop WHERE hd_ecms_shop.classid = 13",10);//第一个参数获取总条数,第二个参数,指定每页多少条

?>

[e:loop={"SELECT hd_ecms_shop.id, hd_ecms_shop.classid, hd_ecms_shop.titleurl, hd_ecms_shop.title FROM hd_ecms_shop WHERE hd_ecms_shop.classid = 13 LIMIT {$_pagenum},{$_pagesize}",10,24,0}]

=$bqr['title']?>

[/e:loop]

//_pageing函数调用分页,1|2,1表示数字分页,2表示文本分页

_paging(2);?>

分页css文件

#page_num { height: 20px; clear: both; padding: 20px 0; position: relative; }

#page_num ul { position: absolute; right: 30px; height: 20px; }

#page_num ul li { float: left; width: 26px; height: 20px; }

#page_num ul li a { display: block; width: 20px; height: 20px; line-height: 20px; border: 1px solid #333; text-align: center; text-decoration: none; }

#page_num ul li a:hover, #page_num ul li a.selected { background: #666; font-weight: bold; color: #fff; }

#page_text { height: 20px; clear: both; padding: 20px 0; }

#page_text ul { text-align: center; }

#page_text ul li { display: inline; }

#page_text ul li a { color: #333; }

帝国cms使用分页函数的技巧:

帝国自带前台分页函数page2,需要的参数为:

$search='&classid=13'; //sql语句需要的参数从此获取

$classid=(int)$_GET['classid'];

$start=0;

$page=(int)$_GET['page'];

$line=20; //每页显示20条

$page_line=12;

$offset=$page*$line;

//获取总数

$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_shop where classid='$classid'");

//分页

$returnpage=page2($num,$line,$page_line,$start,$page,$search);

$query="select * from {$dbtbpre}ecms_shop where classid='$classid' limit $offset,$line";

$sql=$empire->query($query);

while($r=$empire->fetch($sql)){

echo $r[title];

}

echo $returnpage;

?>

一个完整的演示:

将以下代码粘贴到新建的do.php文件,放到网站根目录,运行 http://网址/do.php?classid=你的栏目id,就可以看到分页函数的演示了。这个演示仅限news数据表的栏目。

require('e/class/connect.php');

require('e/class/db_sql.php');

require('e/class/functions.php');

$link=db_connect();

$empire=new mysqlquery();

$classid=(int)$_GET['classid'];

$search='&classid='.$classid;

$start=0;

$page=(int)$_GET['page'];

$line=2;

$page_line=12;

$offset=$page*$line;

$num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_news where classid='$classid'");

$returnpage=page2($num,$line,$page_line,$start,$page,$search);

$query="select * from {$dbtbpre}ecms_news where classid='$classid' limit $offset,$line";

$sql=$empire->query($query);

while($r=$empire->fetch($sql)){

echo $r[title]."

";

}

echo $returnpage;

db_close();

$empire=null;

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。