ホームページ  >  記事  >  php教程  >  PHP+MySQLでのページング表示の実装

PHP+MySQLでのページング表示の実装

WBOY
WBOYオリジナル
2016-06-21 08:58:26974ブラウズ

mysql|ページネーション|表示

最近、フォーラムの多くの人が、クエリ結果のページ分割された表示を実現する方法を尋ねています。次のコードがあなた自身のプログラムの改善に役立つことを願っています。これらのコードは MYSQL 用ですが、他の SQL に簡単に移植できます。

各プログラムの特殊性のため、MYSQL クエリでは非常に一般的なステートメントをいくつか使用します。 TABLE をテーブル名に置き換え、YOUR_CONDITION_HERE を条件ステートメントに置き換え、WHATEVER を並べ替えるフィールド名に置き換えます (もちろん、逆順に並べ替える場合は、DESC 句を追加することを忘れないでください)。


$qh=mysql_query("SELECT COUNT(*) AS rcnt FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY "); $qh);

$nr=$data["rcnt"];

//オフセットパラメータがスクリプトに渡されるかどうかを決定し、渡されない場合はデフォルト値 0

if (empty($offset))

{

$offset=0;

}

//クエリ結果 (ここにあります)ページ 20 ですが、自分で変更できます)

$result=mysql_query("SELECT id,name,phone FROM TABLE WHERE YOUR_CONDITION_HERE ORDER BY WHATEEVER LIMIT $offset, 20");

//返された 20 レコードを表示します

while ($data=mysql_fetch_array($result))

{

//コードに変更します返されたレコードを表示するために使用されます

}

//次のステップ、他のページへのリンクを書き込みます

if(!$offset) // オフセット量が 0 の場合、実行します前のページへのリンクを表示しません

$preoffset=$offset-20;

print "前のページ n";

}

//必要な合計ページ数を計算します

$pages=ceil($ nr/20) ; //$pages 変数には、必要なページ数が含まれます

for ($i=1; $i
{

$newoffset=20*$i;

print "$i n"; >
//最後のページかどうかを確認します

if ($pages!=0 && ($newoffset/20)!=$pages)

{

print "次のページ n";

}

これは、クエリ結果をページに表示する方法の一般的な概要を示しているだけです。他の機能は自分で実行できます。

2 つの点に注意してください: $PHP_SELF には offset という 1 つのパラメータしかなく、必要に応じて独自のパラメータを追加できます。このメソッドは 100 万件を超えるレコードを含むテーブルのクエリには効率的ではありません。





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。