ホームページ  >  記事  >  バックエンド開発  >  PHP ページング効率の最終バージョン (推奨)_PHP チュートリアル

PHP ページング効率の最終バージョン (推奨)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:01:45766ブラウズ

ここには、設計のアイデア、特定のセキュリティ問題、更新を同期するかどうかなどのみが表示されます。特定のニーズに応じて変更を追加できます:
これまで、人々が一般的に使用していた PHP ページング テクノロジは、通常、総数をカウントする必要がありました。ページの合計数を決定する前に、データベース内の情報の量を減らす必要があります。つまり、各ページングにはデータベースへの 2 回の呼び出しが必要ですが、大量のデータや同時クエリが多い場合には非常に非効率的です。この問題についてずっと悩んでいましたが、適切な解決策を思いつきませんでした。今日、寝ている間に突然奇跡に遭遇しました... 具体的な分析原理は次のとおりです : (赤い部分は最適化後の差分、アイデアです。初心者に配慮するため、最もオリジナルなコードで書かれています)
オリジナルのページング技術: を含む この技術は多くのオープンソース プログラムでも使用されています
一般に、統計はデータベース情報から収集され、その後ページングが行われます。ページングを実行するためにクラスが呼び出され、そのたびに 2 つのデータベース クエリ操作が必要になります。
例 (オリジナルのページング テクノロジ): 毎回 2 つのデータベース クエリを実行するには

コードをコピーします コードは次のとおりです:

$ sqlstr="select count(*) as total from tablename";
$sql=mysql_query($sql) または die("error ");
$info=mysql_fetch_array($sql) //最初のデータベース呼び出し
$total =$info["total"];//ページをめくるたびに、情報アイテムの総数のデータベースクエリ操作を実行する必要があります
$pagesize=10 //各ページに表示される番号
$page= $_GET["page"]?max(intval($_GET["page"]),1):1;//現在のページ
if($ total){,
$sql="select * from tablename limit "( $page-1)*$pagesize",$pagesize";
$sql=mysql_query($sql) または die("error");//いいえ、セカンダリ データベース クエリ操作
$info=mysql_fetch_array($sql);
do{
......
}while($info=mysql_fetch_array($sql));
("Page_class.php") // ページネーションクラスを呼び出す
; $ url = "url.php? page =" // 現在のページが url.php
であると仮定します。 echo $ get_page = new get_page $pagesize,$page) // URL はページネーションされる URL アドレスです
}
/ /最適化されたページング技術 (最初の呼び出しで情報統計を実行するだけ)
if(isset($_GET[ "total"])){ //メッセージの総数をカウントする必要があるのは 1 回だけです
$total=intval($ _GET["total"]);
//将来のメッセージの総数は GET を介して渡すことができ、データベース負荷の 1/2 を節約できます,,,,
}else{
$sqlstr="select count(* ) as total from tablename";
$sql=mysql_query($sql) or die("error");
$info=mysql_fetch_array($sql); //最初のデータベース呼び出し
$total=$info["total"] ;
} //情報の総数
$pagesize=10; //各ページに表示される数
$page=$_GET["page"]?max(intval($_GET["page"]), 1):1;//現在のページ
if($total){
$sql="select * from tablename limit "($page-1)*$pagesize",$pagesize";
$sql=mysql_query($ sql) または die("error");// 2 番目のデータベース クエリ操作
$info=mysql_fetch_array($sql ;
$url="url.php?total=$total&page=" // 現在のページが URL であると仮定します.PHP
echo $get_page=new get_page($url,$total,$pagesize,$page); // URL は目的のページネーション URL です
}




http://www.bkjia.com/PHPjc/327980.html

www.bkjia.com

http://www.bkjia.com/PHPjc/327980.html技術記事ここでは、設計のアイデア、特定のセキュリティ問題、更新を同期するかどうかなど、特定のニーズに応じて追加および変更することができます。以前は、人々が一般的に使用していた PHP ページング テクノロジは、通常、最初にデータをカウントする必要がありました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。