Home > Article > Backend Development > 请问PHP生成JSON分页问题
php json
最近在搞生成PHP 生成JSON,想实现分页,下边代码已能把数组生成了,分页要怎实现了?想实现每10条分一次页你可先分页,再生成json.
先生成数组,再用json_encode()生成json。
分页不是在客户端用JS分的,分页通常都在服务器端用PHP计算出需要获取的数据库条数,然后直接从数据库中获取选择的记录。
比如你通过GET或POST方法指导了现在是第几页,
$page = 1;//第几页
$pagenum = 10;//每页几条
$start = ($page - 1) * $pagenum;//这个就是计算出开始的记录数
//你的SQL语句就可以这样写
$sql = "SELECT * FROM akb order by infoid desc LIMIT $start,$pagenum";
前端部分,比如用jquery库
var page=1;var total=-1;$.getJSON('list.php?total='+total+'&page='+page,function(data){ var len,i,htm; total = data.total; lists = data.lists; len=data.length; htm = ''; for (i=0; i<len;i++){ //循环处理 每条数据 htm += lists[i].title; } //将处理后的 第 page 页数据插入页面指定的DOM中 $('listDom').html(htm); if(page==1){ //当加载第一页的时候 根据返回的数目 生成分页代码 插入到页面指定DOM中 //这里就要对 分页按钮绑定事件 加载数据的事件 htm = ....... $('pageDom').html(htm); }})
$result = array();if($total == -1){ $result['total'] = msql查询符合条件的总记录数}else{ $result['total'] =$total;}//当前页数$page = min(1,$page);//每页加载数据条数$pgerow = 10;$sql = "SELECT * FROM akb order by infoid desc LIMIT ".($page-1)*$pagerow.",$pagerow";$lists = array();$query = mysql_query($sql);for ($x = 0; $x < mysql_num_rows($query); $x++) { $lists[] = $row;}$result['lists'] = $lists;echo json_encode($result);exit;
不懂为什么要引入json,用php直接分页输出就好了呀。
用来android开发调用数据用,不会JAVA,所以用php来生成!
用来android开发调用数据用,不会JAVA,所以用php来生成!
我们的android开发全部都是调用的php接口,非常方便。