ホームページ  >  記事  >  バックエンド開発  >  PHP の第 5 弾に関する簡単な説明 --- ページネーションの九陽魔法_PHP チュートリアル

PHP の第 5 弾に関する簡単な説明 --- ページネーションの九陽魔法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:50:33886ブラウズ

上記の記事 http://www.BkJia.com/kf/201204/128413.html では、再帰関数の動作メカニズムと使用法について説明しましたが、理解できているかどうかはわかりません。ご理解いただければ、いつでもご質問いただけます。

過去 2 日間で、多くの学生が質問するときにページングに質問を追加しました。そこで、今日はページング技術の応用について詳しく説明します:

一部の Web アプリケーションでは美しいページネーションがよく見られます

次のページをクリックすると、次のページのコンテンツが表示され、ページがより美しくなります。

この記事の説明を読めば、学生さんも美しいページネーションを書けるようになると思います

これで、次のデータを含む mytable という名前のデータテーブルができました。


ID 名前 年齢 性別
1 ゴーダン wrw7921sqa5eb72c92a549dd5avfr112 20 1
2 ガオ フシュアイ vdf79218965eb72c92a549dd5a334534 20 0
3 ジエ・ゲー gbj792saa65eb72c92a549dd5avfd321 22 1
4 バンド・オブ・ブラザーズ 45379218965eb72ccdd549dd5a330342 24 1
5 ランプブラザーズ cdc79218965eb72c92a549dd5vsfdwsx 24 1
6 ランプ ret79218965eb72c92a549dd5a33bgyt 25 0
7 php 123qwe18965eb72c92a549dd5a330875 26 1
8 mysql 76e79218965eb72c92a549ddvfdd0dsa 28 0
9 アパッチ 54ebnm18965eb72c92a549dd5a330cxz 30 1



まず、ページングリンクを作成しましょう

echo "前のページ
";
echo "次のページ
";
echo "アイテムの合計";
?>

考えてみましょう、前のページをクリックすると、現在のページ番号が1つ減り、前のページのデータが表示されます

変数 $page を使用して現在のページ番号を制御すると仮定すると、前のページは $page-1 になるはずです

次のページのページ番号は $page+1 です

そのため、上記のリンクを次のように変更する必要があります:

echo "前のページ
";
echo "次のページ
";
?>

これにより、前ページと次ページのページ番号を送信する方法を誰もが明確に理解できるようになります

しかし、実際の開発では、Web ソフトウェアでユーザーがページにアクセスしたときに、index.php にのみアクセスできるようにすることは不可能です。

それでは、この状況に対処します:

$page = !empty($_GET['page'])?$_GET['page']:1
?>

この時点で $page が指定されていない場合、つまり $_GET['page'] が空の場合、値 1 を $page に直接割り当てます

次のステップでは、データを個別に表示しましょう。つまり、最初のページには最初のページのデータのみが表示され、2 番目のページには 2 ページ目のデータのみが表示されます... Page N は N 番目のページのみを表示します Pageデータ

この場合、ページ単位でデータを表示したい場合はSQL文を操作する必要があります

それでは、データの各ページに 5 つのレコードしか表示されない場合、SQL ステートメントはどのようになるべきでしょうか?

それでは私たちの

最初のページ:

1番目から5番目の項目まで表示されるデータは「limit 0,5」でなければなりません;


2ページ目:

6番目から10番目の項目に表示されるデータは「limit 5,5」である必要があります;


ページ 3:

11 番目から 15 番目の項目までの表示データは「limit 10,5」になります。

......

パターンを見てみましょう

注意して見てください、n 番目のページは次のとおりです

limit (n-1)*各ページに表示されるアイテム数、各ページに表示されるアイテム数

言い換えれば、必要なデータには、現在のページ番号と各ページに表示されるアイテムの数が含まれます

先ほど述べたように、$_GET['page'] を通じて現在のページ番号を取得できます。その後、変数を使用して各ページに表示される項目の数を定義できます。熟練した学生は定数を定義してそれを設定できます。設定内でファイルに移動します

ここでは変数を使用してページサイズを定義し、5に設定します

$page = $_GET['ページ'];

$ページサイズ = 5;

組み立てられたSQL文のlimit句は「limit ($page-1)*$pagesize,$pagesize」である必要があります

この時点で、データのページネーションができました。

しかし、合計ページ数を取得したい場合は、データベースからの合計レコード数もカウントする必要があります

$sql = "mytable から count(*) を選択";

$result = mysql_query($sql);

mysql_result()関数を使用して実行結果を取り出すことができます。

$count = mysql_result($result,0);

それでは、現在の総レコード数は $count です、

データ項目の総数は 9 で、各ページには 5 つの項目が表示されます。ページの総数が 2、つまり ceil(9/5)=2 であると考えてください。

総ページ数を計算する式は ceil($count/$pagesize),


さて、必要なデータがすべて取得され、最終的に SQL ステートメントに組み立てられて表示されると、次のようになります:
//各ページに表示するレコード数を設定します
$pagesize = 5;
// 現在のページ番号を取得します
$page = !empty($_GET['page'])?$_GET['page']:1;
//レコードの総数
$sql = "mytable から count(*) を選択";
$result = mysql_query($sql);
$count = mysql_result($result,0);
// 全部で何ページありますか
$page_count = ceil($count/$pagesize);
// 現在指定されたページ番号が範囲外かどうかを判断します
if($page<1){
$page=1;
}elseif($page>$page_count){
$page=$page_count;
}
// SQL ステートメントの組み立てを開始します
$sql = "mytable 制限から id、名前、年齢、性別を選択 ".($page-1)*$pagesize.','.$pagesize;
//SQL文を送信
$result = mysql_query($sql);
//出力フォーム
echo "

";
echo "";
echo "";
//性別配列を定義します
$sex = array('男性','女性');
// 出力結果セットをスキャンします
while($row = mysql_fetch_assoc($result)){
echo "";
echo "";
echo "";
echo "";
[backcolor=#ffffff][color=#008ef1]エコー "";[/color][/backcolor]
}
echo "
ユーザー名 年齢 性別 ";
echo "
".$row['name']."".$row['age']."".$sex[$row['sex']]."
";
//リンクを表示するためにページネーションを追加します
$up = (($page-1) $down = (($page+1)>$page_count)?$page_count:($page+1);
echo "前のページ ";
echo "次のページ ";
echo "合計".$page_count."ページ";
echo "現在のページ ".$page." ";
echo "合計".$count."レコード";
?>
さて、ページング機能を追加しました。とても簡単ではないでしょうか?

ページングの具体的な手順をまとめてみましょう:

ステップ 1: ページ サイズ (各ページに表示するアイテムの数) を設定します

ステップ 2: 現在のページ番号を取得する

ステップ 3: レコードの総数を取得する

ステップ 4: 総ページ数を取得する

ステップ 5: 現在指定されたページ番号が範囲外かどうかを判断します

ステップ 6: SQL ステートメントを組み立てる

ステップ 7: SQL ステートメントを mysql サーバーに送信する

ステップ 8: 結果セットをトラバースして出力する

ステップ 9: ページネーションリンクを追加する

上記の Jie Ge の Jiuyang Magic Skills の武術の秘密を覚えていれば、学生は PHP の武術キリング フィールドをゆっくりと乗り切ることができると思います



著者 zdrjlamp

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478277.html技術記事上記の記事 http://www.2cto.com/kf/201204/128413.html では、再帰関数の動作メカニズムと使用法について説明しましたが、理解できない場合はわかりません。 、以下からご質問いただけます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。