十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
$tab=100; 每个显示多少
我们提供的服务有:成都网站建设、网站建设、微信公众号开发、网站优化、网站认证、黟县ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的黟县网站制作公司
$total=一共多少。(select cout(*) from xx);就可以
$page=ceil($total/$tab)需要几页,比如一共10个,每页3个就是10/3=3.....1,所以ceil向上取整10/3=4页
$nowPage=0;
然后select * from xx limit $nowPage*$tab,$tab;就可以取出相应的了
第一个 就是0,0*100然后取100条,就是1-100;
然后1*100,再取100条,就是 101-200;
本人用ThinkPHP3.2,今天正在开发一个需要分组显示的功能,可是从数据库中把相应数据读取后直接用group分组,结果每组显示的是最老的记录,我的需求是要显示每组的最新记录。在网上大搜一翻后,未果,本人决定自行研究,现将方法记录于此以防遗忘。
其实很简单,以供就两步:
第一步:
将符合条件的数据全部取出,暂不用group分组,作为子查询:
[php] view plain copy
$subQuery = $model-field('id,name')-table('tablename')-where($where)-order('time desc')-select(false);
第二部:
利用子查询进行查询分组
[php] view plain copy
$model-table($subQuery.' a')-group('field')-select();span style="font-family: Arial, Helvetica, sans-serif;" /span
好了,思路就是这样。希望对大家有帮助!
你说的这个问题采用php常用的分页技术就能够实现了。
?php //显示所有表的信息
//1.连接数据库
$conn=ql_connect('localhost','root','1234abcd') or die('连接数据库错误'.mysql_error());
//2.选择数据库
mysql_select_db('empManage');
//3.选择字符集
mysql_query('set names utf8');
//4.发送sql语句并得到结果进行处理
//4.1分页
$pageSize=3;//每页显示多少条记录
$rowCount=0;//共有多少条记录
$pageNow=1;//希望显示第几页
$pageCount=0;//一共有多少页
//4.15根据分页链接来修改$pageNow的值
if(!empty($_GET['pageNow'])){
$pageNow=$_GET['pageNow'];
}
$sql='select count(id) fr1)){$rowCount=$row[0];}
//4.12计算共有多少页
$pageCount=ceil($rowCount/$pageSize);
$pageStart=($pageNow-1)*$pageSize;
//4.13发送带有分页的sql结果
$sql="select * from emp limit $pageStart,$pageSize";
$res2=mysql_query($sql,$conn) or die('无法获取结果集'.mysql_error());
//echo输出表格
echo 'table border=1';"trthid/ththname/ththgrade/ththemail/ththsalary/ththa href='#'删除用户/a/ththa href='#'修改用户/a/th/tr";while($row=mysql_fetch_assoc($res2)){echo "trtd{$row['id']}/tdtd{$row['name']}/tdtd{$row['grade']}/tdtd{$row['email']}/tdtd{$row['salary']}/tdtda href='#'删除用户/a/tdtda href='#'修改用户/a/td/tr";}echo '/table';
//4.14打印出页码的超链接
for($i=1;$i=$pageCount;$i++){
echo "a href='?pageNow=$i'$i/a ";
}
//5.释放资源,关闭连接
mysql_free_result($res2);
mysql_close($conn);
?
分组查询原理都是SQL的分组查询,THINKPHP中只是用到他自己的一些自定义的方法!比如 join()、group()、having()方法等,实际对应的也是SQL里的这些关键字!
例如本次需求是要按照cid进行分组,按照通常的做法是 SELECT * FROM 表名 GROUP BY cid,这样就能按照cid进行分组筛选!然后使用THINKPHP的时候则使用 M('表名')-group('cid')-select(); 实际生成的语句和原始SQL代码是一样的。
$data1 = array("a2"-"类一","V4"-“类二”);
$data2 = array();
foreach($data1 as $key=$value) {
$data2[$value] = $data2[$value].' '.$key;
}