做了一个dedecms的列表页面,用loop或sql从数据库中读取数据,我想要分页显示,比如一页显示9个,如何做?

如题所述

第1个回答  2012-05-06
<?php
function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){
$pagecode = ’’;//定义变量,存放分页生成的HTML
$page = intval($page);//避免非数字页码
$total = intval($total);//保证总记录数值类型正确
if(!$total) return array();//总记录数为零返回空数组
$pages = ceil($total/$pagesize);//计算总分页
//处理页码合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//计算查询偏移量
$offset = $pagesize*($page-1);
//页码范围计算
$init = 1;//起始页码数
$max = $pages;//结束页码数
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
$pageoffset = ($pagelen-1)/2;//页码个数左右偏移量

//生成html
$pagecode=’<div class="page">’;
$pagecode.="<span>$page/$pages</span>";//第几页,共几页
//如果是第一页,则不显示第一页和上一页的连接
if($page!=1){
$pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页
$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页
}
//分页数大于页码个数时可以偏移
if($pages>$pagelen){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max = $pagelen;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++){
if($i==$page){
$pagecode.=’<span>’.$i.’</span>’;
} else {
$pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
}
}
if($page!=$pages){
$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
$pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页
}
$pagecode.=’</div>’;
return array(’pagecode’=>$pagecode,’sqllimit’=>’ limit ’.$offset.’,’.$pagesize);
}
?>追问

你写的这么多代码是什么,当然是什么也无所谓,重要的是,把它放到哪里? 我应该怎么用这段代码~
下面的是我的列表页引用~
{dede:sql sql='Select * from dede_member_person where mid>1' }

姓名:[field:uname/]

{/dede:sql}

追答

百度hi你了,看看吧

第2个回答  2012-05-06
在织梦编辑器里面有这个东西的!你找找!本回答被提问者采纳

dedecms标签的使用方法
col='' 分多少列显示(默认为单列),5.3版中本属性无效,要多列显示的可用div+css实现row='10' 返回文档列表总数typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;titlelen = '30' 标题长度 等同于titlelengthorderwey='desc'或'asc' 排序方向keyword= 含有指定...

dedecms 列表点击加载更多读取数据库内容怎么实现
= ''){$(".index-list").append(data);\/\/数据显示到页面_this.attr("pnum", Number(pnum)+1);\/\/分页+1}else{_this.text("没有更多的数据");_this.attr("pnum", 0)}$("#loading27").hide();}})return false;})PHP代码(arcajax.php):<?phprequire_once(dirname(__FILE__)....

DedeCms模版制作教程及标记语法详解
1)板块(封面)模板:指网站主页或比较重要的栏目封面使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。 2)列表模板:指网站某个栏目的所有文章列表的模板,一般用 “list_识别ID...

dedecms中dede:global dede field分别是什么意思?有何区别?系统基本参 ...
一般是在文章页调用的标题标签,显示文章的标题,全局都可以使用。 这个标签通常用在页面的head中。基本语法:{dede:field.title}。dede:global :是全局变量 例如后台基本参数中的站点根网址,{field:title\/] :是列表页底层模板标签,需要配合{dede:list}{\/dede:list}或者{dede:arclist}{\/dede:arc...

谁能告诉我DEDE是个什么东西了说的详细点
V3中需要严格用“{\/dede:标记名称}”,否则会报错。2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。(1) global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:{dede:global name='变量名称'}{\/dede:global} 或 {dede:global ...

相似回答