ホームページ  >  記事  >  バックエンド開発  >  php+mysql ページング処理に関するディスカッション_PHP チュートリアル

php+mysql ページング処理に関するディスカッション_PHP チュートリアル

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

php+mysql ページング処理に関するディスカッション。 一般的なページング処理プロセスは次のとおりです。 1. select count(*) from tbl_name を使用して、ページングされるレコードの合計数を取得します。 2. レコード数に基づいてページの合計数を計算します。各ページ: 総ページ数 = ceil (総レコード数 / ページあたりのレコード数) 3. 現在のページ番号に基づいて開始位置を計算します: 開始位置 = (現在のページ番号 - 1)*ページあたりのレコード数4. select * from tbl_name 制限開始位置、ページごとのレコード数を使用します。 表示するレコードを取得します。 5. リスト出力関連情報 このプロセスでは、データベースは必要なデータを取得するためにテーブルを 2 回走査する必要があります。 limit は、指定された数のレコードを取得した後にトラバースを終了しますが、「開始位置」までの以前の取得は無駄になります。 ここでは議論のために新しいアルゴリズムを提案します。 1. mysql のユーザー変数を使用して、各ページの開始 ID 番号を分割して抽出します。 2. クエリ結果のレコード数は、ページの合計数です。 3. 現在のページ番号に基づいて、現在のページの開始 ID を取得します。 4. select * from tbl_name where id>= starting id limit を使用して取得します。 5. リスト出力関連情報は、後者のクエリで確認できます。 id を主キーとして使用するため、データベースは必要なレコードを直接見つけることができます。これにより、クエリ時間が短縮されます。 このクエリ アルゴリズムには副産物があり、前のページと次のページを接続する重複レコードが生成される可能性があります。つまり、各ページ間に重複するレコードが存在します。もちろん、彼を追い出すのは簡単です。 以下はテストコードです: ="; } if($mode) $pagesize++; mysql_query("set @v:=-1"); // mysql ユーザー変数を定義します $rs = mysql_query("select @v:= (@ v+1) as xh, id from data HAVING mod(xh,$pagesize)=0 order by id $order"); mysql_result_all($rs); // 各ページの分布を確認 echo $pages = mysql_num_rows( $rs); // 総ページ数を取得します if($mode) $pagesize--; // ページングの結果をテストします。$i は表示されるページを表します for($i

)
[$i] $xh - - $id"; $rs1 = mysql_query("select * from data where id$expr$id order by id $order limit $pagesize"); mysql_result_all($rs1); // 表示関連results} ?> mysql_result_all.inc this この関数は何度も投稿しましたが、プログラムのデバッグに非常に役立ちます function mysql_result_all($result,$format="") { echo ""; for($i=0;$i".mysql_field_name($result,$i).""; } echo ""; while($row = mysql_fetch_row($result)) { echo " "; $i=0;$i

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/531833.html技術記事 php+mysql ページング処理に関するディスカッション 一般的なページング処理プロセスは次のとおりです。 1. select count(*) from tbl_name を使用して、ページングされるレコードの合計数を取得します。 2. 各レコードのレコード数に基づいてページの合計数を計算します。ページ: 合計...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。