php数据库数组分页 php数据库分表增删改查( 二 )


$list = $User-where('status=1')-order('create_time')-limit($Page-firstRow.','.$Page-listRows)-select();
$this-assign('list',$list);// 赋值数据集
$this-assign('page',$show);// 赋值分页输出
$this-display(); // 输出模板
基本思想就是先计算总的记录数 , 然后根据所设置的每页显示的记录数来分页 。使用Thinkphp封装好的Page类可以很方便的实现 。实现的重点在第11行,limit方法就是按照一定的规则从查询数据中抽取数据 。但是数据已经取出又怎么办呢?
我们用到了php自带的函数array_slice( ) 。定义在此:
其实就是数组版的limit方法 。好了,工具找到了,实现就很容易了 。直接上代码:
复制代码 代码如下:
public function nodeslist(){
$portal = new PortalApi;
$nodelist = $portal-getNodeLists($this-uid);
$count = count($nodelist['data']);
$p = new Page($count,10);
$lists = array_slice($nodelist['data'], $p-firstRow,$p-listRows);
$page = $p-show();
$this-assign('page',$page);
$this-assign('nodes',$lists);
$this-display();
}
代码有删减,只保留实现细节 。
第3行getNodeLists方法从数据库中取出数据并赋值给数组nodelist 。
第5行count计算出数组元素的个数 。
第6行为Page类传入参数 。
第7行的array_slice函数代替了limit方法 。原理相同 。
第9行用assign方法为模版赋值 。定义在此:
第10行同理 。
下面是view中的代码:
复制代码 代码如下:
div class="page-list"
{$page}
/div
如果仅仅这样的话,显示出来的效果并不友好 。再找出来Page类的定义:
复制代码 代码如下:
// 分页显示定制
private $config= array(
'header' = 'span class="rows"共 %TOTAL_ROW% 条记录/span',
'prev' = '上一页',
'next' = '下一页',
'first'= '第一页',
'last' = '...%TOTAL_PAGE%',
'theme'= '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',
在页数前后加入空格 。现在可以看效果了:
怎么做php数据库调取数据分页显示,要php的?php
include("connection.php");
$perNumber=10; //每页显示的记录数
$page=$_GET['page']; //获得当前的页面值
$count=mysql_query("select count(*) from user"); //获得记录总数
$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //计算出总页数
if (!isset($page)) {
$page=1;
} //如果没有值,则赋值1
$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录
$result=mysql_query("select * from user limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数
while ($row=mysql_fetch_array($result)) {
echo "user_id:".$row[0]."br";
echo "username:".$row[1]."br"; //显示数据库的内容
}
if ($page != 1) { //页数不等于1
?
a href="https://www.04ip.com/post/fenye.php?page=?php echo $page - 1;?"上一页/a !--显示上一页--
?php
}
for ($i=1;$i=$totalPage;$i++) {//循环显示出页面
?
a href="https://www.04ip.com/post/fenye.php?page=?php echo $i;?"?php echo $i ;?/a
?php
}
if ($page$totalPage) { //如果page小于总页数,显示下一页链接
?
a href="https://www.04ip.com/post/fenye.php?page=?php echo $page + 1;?"下一页/a
?php
}
?
================================
这个是很简单的..而且也写了注释..不知道合不合你的意..
Thinkphp数组分页如何操作第一种php数据库数组分页:利用Page类和limit方法
$User = M('User'); // 实例化User对象
import('ORG.Util.Page');// 导入分页类
$count= $User-where('status=1')-count();// 查询满足要求php数据库数组分页的总记录数

推荐阅读