ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用した JSON ページネーションの生成について質問がありますか?

PHP を使用した JSON ページネーションの生成について質問がありますか?

WBOY
リリース: 2016-06-23 14:11:45
オリジナル
1183 人が閲覧しました

php json

最近、PHP で JSON を生成することに取り組んでいます。次のコードはすでに配列を生成できます。 10項目ごとのページ分割を実現したい

//接続情報
$user = "XXX";
$password = "XX"; " ;
データベース
mysql_query('set 文字セット " utf8 "');
$query = mysql_query("SELECT * FROM akb order by infoid desc");

//json オブジェクトを開始
$json = '{"tags ":[';

//ループして結果を返す
for ($x = 0; $x $row = mysql_fetch_assoc($query);
$infoid= $row["情報ID"];
$タイトル=$row["ロゴ画像"];
$bpic=$row["ロゴ画像"]; ["AccTime"];
$info=$ row["Burden"];


$json .= '{"id":"'. $infoid .' ","title":"'.$Title .'","pic":"'.$pic.'","bpic":"'.$bpic.'","time":"'.$time .'","info":"'。$info .'","url":"'。$url.'"}';
else
$json .= "]}"; = $_GET["callback"] . $json;
echo $response; // 接続を閉じる

?>


最初にページネーションし、次に 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);     }})
ログイン後にコピー


上記の JS はおそらく同じ意味です。使用する場合は、直接コピーすることはできません。
バックエンド部分

$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;
ログイン後にコピー

アイデアは上記と同じですが、レコードの総数がここでもう少し処理される点が異なります。これは、このクエリは初めて実行され、フロントエンドに返された後にキャッシュされるためです。 。

後続のクエリでは合計が GET に入れられるため、効率が若干向上します。

以前にこの種のものをカプセル化したことを覚えていますが、アプリケーションのシナリオが一般的な Web ページングである場合は、同様のカプセル化された関数がたくさん見つかります。 Google で調べてみてください

なぜ json を導入する必要があるのか​​わかりません。php を使用して出力を直接ページングするだけです。


Android開発でデータを呼び出すために使用されます。JAVAを知らないので、phpを使用して生成します。

Android開発でデータを呼び出すために使用します。JAVAがわからないので、phpを使用して生成します。
私たちの Android 開発はすべて PHP インターフェイスに基づいており、非常に便利です。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート