我正在使用jquery bird-eye示例来移动地图搜索。我用下面的PHP代码将mysql数据转换为json
header('Content-Type: application/json');
include('dbhconfig.inc.php');
$response = array();
$stmt = $dbh->prepare("SELECT * FROM venddata");
$stmt->execute();
//$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as &$r) { // with reference
// explode with comma, map with floatval
$r['latlon'] = array_map('floatval', explode(',', $r['latlon']));
}
echo json_encode(array('results' => $rows)); // json encode
显示json中的所有记录。但是我希望每页只显示10条记录,并且在json中显示总计数和no.of页面。请看下面的例子。
http://sbadb.herokuapp.com/v1/bizs 它显示了10条记录,在页面底部我找到了代码
"meta": {
"page": 1,
"per_page": 10,
"count": 493,
"total_pages": 50
}
我想表现出类似上面的例子。而获取mysql的数据是
http://www.zesteve.com/jsondata.php
我对json知之甚少。需要一些帮助
下面的代码是使用js文件。
response_params_pagination: {
page: function(data) {
return data.meta.page;
},
per_page: function(data) {
return data.meta.per_page;
},
total_pages: function(data) {
return data.meta.total_pages;
},
count: function(data) {
return data.meta.count;
}
},
结论是我想将mysql数据分页到json中,它也应该在json中包含上面的元内容。
答案 0 :(得分:1)
使用JSON执行此操作不是正确的方法。您应该使用LIMIT
对MySQL进行数据分页。
SELECT * FROM venddata LIMIT 10 OFFSET <yourpage*10>
(旁注:确保保护查询免受sql-injection)
查询选择以11开头的10行(偏移量10)。省略第一页的偏移量。您现在要做的就是将页码传递给PHP脚本并使用它来构建SQL查询。
使用您已有的元设置数组,使其更具动态性。