2016-04-12 45 views
0

我正在使用jquery鳥眼示例來移動地圖搜索。我將mysql數據轉換爲json,下面的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中只顯示總數和頁數。請看下面的例子。

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中包含以上元內容。

回答

1

用JSON做這件事不是正確的做法。例如,您應該使用LIMIT爲MySQL分頁數據。

SELECT * FROM venddata LIMIT 10 OFFSET <yourpage*10> 

(邊注:請確保您免受SQL注入查詢)

查詢開始選擇11 10行(偏移10)。省略第一頁的偏移量。你現在要做的就是將頁碼傳遞給你的PHP腳本,並用它來構建你的SQL查詢。

使用已有的元設置數組使其更具動態性。

+0

好的,但我需要在我的json數據中使用「元」來使它工作 –

相關問題