php分页json,php 分页 json

场景:请教PHP生成JSON分页有关问题

请问PHP生成JSON分页问题

最近在搞生成PHP 生成JSON,想实现分页,下边代码已能把数组生成了,分页要怎实现了?想实现每10条分一次页

//connection information

$host = "XXX";

$user = "XXX";

$password = "XX";

$database = "XX";

//make connection

$server = mysql_connect($host, $user, $password);

$connection = mysql_select_db($database, $server);

//query the database

mysql_query('set character set "utf8"');

$query = mysql_query("SELECT * FROM akb order by infoid desc");

//start json object

$json = '{"tags":[';

//loop through and return results

for ($x = 0; $x 

$row = mysql_fetch_assoc($query);

$infoid=$row["InfoId"];

$Title=$row["Title"];

$pic=$row["LogoImg"];

$bpic=$row["LogoImg2"];

$time=$row["AccTime"];

$info=$row["Burden"];

$url=$row["ExtUrl"];

$json .= '{"id":"'. $infoid .'","title":"'.$Title.'","pic":"'.$pic.'","bpic":"'.$bpic.'","time":"'.$time.'","info":"'. $info .'","url":"'. $url.'"}';

if ($x 

$json .= ",";

else

$json .= "]}";

}

$response = $_GET["callback"] . $json;

echo $response;

//close connection

mysql_close($server);

?>

php

json

分享到:

------解决方案--------------------

你可先分页,再生成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

//循环处理 每条数据

htm += lists[i].title;

}

//将处理后的 第 page 页数据插入页面指定的DOM中

$('listDom').html(htm);

if(page==1){

//当加载第一页的时候 根据返回的数目 生成分页代码 插入到页面指定DOM中

//这里就要对 分页按钮绑定事件 加载数据的事件

htm = .......

$('pageDom').html(htm);

}

})

上面的JS大概是个意思,用的时候不能直接Copy,根据自己的情况写。

后端部分

$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 

$lists[] = $row;

}

$result['lists'] = $lists;

echo json_encode($result);

exit;

思路与楼上一样,只不过这里多处理一下了记录总数,因为这个查询可以仅仅在第一次时候进行,返回给前端后缓存起来。

之后的查询把total放到GET中,效率上略有优势。

我记得之前有封装过这类东西,不知道你这个应用场景是不是一般的web分页,如果是,可以找到不少类似的封装函数的。google下

------解决方案--------------------

不懂为什么要引入json,用php直接分页输出就好了呀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值