问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

thinkphp 3.1 这个查询怎么进行分页

发布网友 发布时间:2022-04-07 05:24

我来回答

4个回答

热心网友 时间:2022-04-07 06:54

一、首先需要在MsgManage控制器中加入分页方法

知识点:
1、count函数的试用
2、Page类实例化操作及相关参数了解
3、limit函数了用
4、show函数了解
编辑文件admin/Lib/Action/MsgManageAction.class.php
代码如下:

复制代码代码如下:

class MsgManageAction extends CommonAction {
public function index(){
import('ORG.Util.Page');
//import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Page.class.php类文件
$count = M('board')->count();
//调用board库,取出所有数据条数
$page = new Page($count ,10);
//实例化Page类,其中第一个参数为显示条数的总数,每次取出十条,也就是下面$page->listRows的值
$limit = $page->firstRow . ',' . $page->listRows;
//$page->firstRow为查找的起始条数,默认为0,如果$page->listRows为10,那么第2页的$page->firstRow就为10,以此类推

$board = M('board')->order('time DESC')->limit($limit)->select();
//注意,这里较之前的版本添加了->limit($limit)
$this->board = $board;
$this->page = $page->show();
//将$page->show()通过show方法解析$page内容显示并赋值给模板变量,供模板调用

$this->display();
}

Public function delete(){
$id = I('id','','intval');

if(M('board')->delete($id)){
$this->success('删除成功',U('index'));
}else{
$this->error('删除失败');
}
}
}

show方法是3.1版本才有的一个新功能
ThinkPHP中页面输出的过程是读取模板文件,然后进行模板解析(也支持调用第三方模板引擎解析),但是有一些情况,我们并没有定义模板文件,或者把模板文件保存在数据库里面,那么这个时候进行页面输出的时候,我们是无法进行模板文件读取的,3.1版本则针对这样的情况增加了内容解析输出的功能。
内置的模板引擎也进行了完善,如果传入的模板文件不存在的话,则会认为是传入的模板解析内容,因此,3.1的View类和Action类也做了一些改进。
display方法用于模板文件渲染输出,show方法则用于模板内容渲染输出,并且show方法仍然支持内容解析功能
具体内容可参考:ThinkPHP3.1新特性 内容解析输出
二、在模板文件中加入分页模块
知识点:
1、td单元格合并
2、$page变量调用显示

编辑文件:admin/Tpl/MsgManage/index.html,加入一段tr用来显示分页相关,代码如下:

复制代码代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Message Board BackGround</title>
</head>
<body>
<table class="table" border="1">
<tr>
<th>ID</th>
<th>发布者</th>
<th>内容</th>
<th>发布时间</th>
<th>操作</th>
</tr>

<foreach name='board' item='b'>
<tr>
<td>{$b.id}</td>
<td>{$b.username}</td>
<td>{$b.content}</td>
<td>{$b.time|date='y-m-d H:i',###}</td>
<td><a href="{:U('admin.php/MsgManage/delete',array('id' => $b['id'])),''}">删除</a></td>
</tr>
</foreach>

//新增tr代码短
<tr>
<td colspan='5' align='center'>
//将5个单元格合并,并且居中显示
{$page}
//显示控制器中$this->page内容
</td>
</tr>
</table>
</body>
</html>

热心网友 时间:2022-04-07 08:12

用php的数组切分函数进行分页,array_slice(array,offset,length,preserve)如果使用这个进行分页的话要考虑性能问题,这个要把全部数据读出来之后分页跟,在数据库中使用limit不一样

热心网友 时间:2022-04-07 09:46

tp不是有个分页类么,结合mysql的limit
import('util.Page');
$page=new Page($count,10);//$count是查询出来的总记录数
$sql="SELECT photo,userid,relname,username,Phone,qq, b.name AS Sex,c.name AS Age,d.name AS marriage,
e.name AS height,f.name AS weight,g.name AS school,h.name AS salary,i.name AS house,
j.name AS profession,k.name AS zage1,l.name AS zage2,m.name AS Zheight1,n.name AS Zheight2,
o.name AS zschool,p.name AS zmoney,r.name AS place
FROM ty_userinfo a
LEFT JOIN ty_class2 b ON a.Sex=b.id
LEFT JOIN ty_class2 c ON a.Age=c.id
LEFT JOIN ty_class2 d ON a.marriage=d.id
LEFT JOIN ty_class2 e ON a.height=e.id
LEFT JOIN ty_class2 f ON a.weight=f.id
LEFT JOIN ty_class2 g ON a.school=g.id
LEFT JOIN ty_class2 h ON a.salary=h.id
LEFT JOIN ty_class2 i ON a.house=i.id
LEFT JOIN ty_class2 j ON a.profession=j.id
LEFT JOIN ty_class2 k ON a.zage1=k.id
LEFT JOIN ty_class2 l ON a.zage2=l.id
LEFT JOIN ty_class2 m ON a.Zheight1=m.id
LEFT JOIN ty_class2 n ON a.Zheight2=n.id
LEFT JOIN ty_class2 o ON a.zschool=o.id
LEFT JOIN ty_class2 p ON a.zmoney=p.id
LEFT JOIN ty_area r ON a.place=r.id
WHERE (1=1) ";
if(!empty($sex))
{
$sql .=" and Sex= ".$sex;
}
if(!empty($marriage))
{
$sql .=" and marriage = ".$marriage;
}
if (!empty($age1)) {
$sql .=" and Age >= ".$age1;
}
if (!empty($age2)) {
$sql .=" and Age <= ".$age2;
}
if (!empty($place)) {
$sql .=" and place = ".$place[1];
}

$sql.=" limit ".$page->firstRow.','.$page->listRows;

$info=M()->query($sql);
$show=$page->show();//分页

热心网友 时间:2022-04-07 11:38

该怎么分怎么分啊 分页是对结果集分 跟查询条件多少有什么关系?
thinkphp分页 怎样才能不显示第几页,只显示上一页下一页?

TP官方下载完整版,自带有分页类;也可以自己写分页类 p=new Think\Page($count,$pagesize);//调用分页类 p-&gt;setConfig('theme',' %UP_PAGE% %DOWN_PAGE% ');//设置显示的样式

thinkphp分页时 怎么取得 上一页下一页的传递变量 就是我想不用原来的...

php代码:goods = new \Model\GoodsModel();//分页处理 tatal = $goods-&gt;count();//获得总记录数 per = 5;//每页显示5条数据 page = new Page($tatal,$per);//实例化分页类对象 page -&gt; setConfig('header','共%TOTAL_ROW%条记录 第%NOW_PAGE%页/共%TOTAL_PAGE%页');page -&gt; se...

thinkphp怎样实现判断首页或者首页分页第一页显示相关内容 其他分页...

直接使用分页函数

就是我用的是thinkphp框架为什么我把搜索的新闻分页分好后点下一页就...

如果需要点击分页不进行服务器处理,那么可以将所有的搜索匹配内容返回,在本地用JS分页即可。

thinkphp3.1.2示例包怎么用

包含了下面的示例:Hello 表单提交 CURD Ajax提交 多语言 多模板 分页 路由 模板继承 页面Trace 关联操作 独立分组 图片上传

thinkphp分页问题,想实现把上一页下一页那些字都隐藏掉,用两个div或图...

你可以找到他的控制分页的文件,然后修改就行了

thinkphp怎么实现AJAX无刷新查询分页

在模版文件中利用ajax发送给tp一个异步请求,带上参数(页码),再建一个html文件写分页内容,tp取得数据后assign给新建的html文件,display这个新建的模版;ajax接收的返回数据就是这个模版,直接用xxx.html(response)就行了。

tinkPHP3.1与3.2的分页区别

用法上大同小异,最显著的区别就是3.1需要php5.2而3.2需要php5.3以上。因为php从5.3开始才加入了命名空间,thinkphp3.2中就使用了命名空间。另外thinkphp3.2内还集成了云引擎,sae平台课直接使用。详情请到thinkphp的官网看一下他们的文档http://www.thinkphp.cn/info/462.html ...

thinkphp分页,上一下下一页是跳转到新页面.怎样改成不跳转

就是在当前页打开的啊,你如果是新窗口打开,那你就去找Page.class.php 类里面的 标签中 把target去掉就OK了

用thinkphp3.2.3做同一页面两个分页时遇到的问题

function page($model,$map=array(),$order='',$field=array()){if(is_string($model)){$model = M($model);}$limit=$_REQUEST['r']?$_REQUEST['r']:20;$page=intval($_GET['p']);// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取$list = ...

thinkphp分页查询慢 thinkphp查询 thinkphp多条件查询 thinkphp5多表查询 thinkphp子查询 thinkphp查询数据库 thinkphp关联查询 thinkphp5多表联合查询 thinkphp模糊查询
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...同系物官能团是什么(烷烃.烯烃.炔烃.苯及其同系物的物理性质.化学性 ... 为什么我电脑上网的时候不管我上什么网站,金山毒霸都弹出个对话框告诉我... 现在贵妇人的皮草价格多少 猎豹游览器的问题,坑爹啊。 如何写电子邮箱地址 如何调动小学二年级学生课堂学习的积极性? 孩子做事磨蹭如何处理? RTK模块只能用于高精度测量,而无法提供实时 gnss常用的三种定位模式 花卉号是什么意思? 换了个省行程码找不到怎么办 索尼电视KDL-32R300B怎么连接wifi 手机号换了13天查行程数据 移动卡换联通卡行程码咋出不来? 新手机号过了14天了怎么还查不到行程卡- 问一问 北方什么树适合做盆景 哪些果树适合做盆景? 高分悬赏有关爱情的风景简笔画。最好是要几何图形拼成的 东北哪些树木适合做盆景? 谁有风景或动物的简笔画? 北方什么树适合做盆景? 什么样的树可以做盆景 农村有什么树适合做盆景? 什么树可以做盆景 什么树做盆景好呢? 可以用什么树做盆景 请问哪些植物适合做盆景,什么树适合做盆景? 渔夫帽蝴蝶结的系法 不管什么树都可以做盆景吗 关于thinkPHP 查询语句被foreach以后 又怎么做分页 身份证号码152开头的是那个省的? 身份证号一五二开头是哪个省 15223身份证号是哪的 身份证150和152有什么区别 身份证前面的三位数为152的是哪里人 152502开头的身份证是哪里的 身份证号前三位为152是哪里的人啊? 年轻人也有身份证号是152321打头是怎么回事 152打头的身份证号是哪个区? 身份证15280开头是哪里的? 为什么我身份证是152开头?但是我是山西人 于长江152801197512216814是哪里人 152的是移动还是联通?还是电信的呢? 内蒙古乌前旗身份证号开头为什么有152开头的有150开头的? 152127199010106935是哪的身份证? 152104哪里身份证 152621开头的身份证是哪里的? 我昨晚梦到好多蚂蚁在我身上 学会质疑议论文200字提纲 话题为不盲从,不轻信,敢于质疑的800字议论文