ホームページ >バックエンド開発 >PHPチュートリアル >PHP ページングの原理
1. まず SQL ステートメントでの limit の使用法を理解します
SELECT * FROM table ……リミット開始位置、操作数 (開始位置は 0 から始まります)
例:
フロントを取る20 レコード: SELECT * FROM table ……limit 0, 20
11 番目のレコードから 20 レコードを取得します: SELECT * FROM table …… limit 10, 20
LIMIT n は LIMIT 0,n と同等です。
select * from table LIMIT 5; //最初の 5 行を返す、select * from table LIMIT 0,5 と同じ
2. ページング原理
いわゆるページング表示は結果を参照しますデータベースに設定されているものを 1 つずつ表示します
分割方法、現在どの段落にあるか (ページあたりのレコード数、現在のページは何ページか)
最初の 10 レコード: テーブル制限 0,10 から * を選択します
11 番目から 20 番目のレコード :テーブル制限 10,10 から * を選択
レコード 21 から 30 :テーブル制限 20,10 から * を選択
ページング式:
(現在のページ番号 - 1) X 1 ページあたりの項目数、Numberページごとの項目数
Select * from tablelimit ($Page- 1) * $PageSize, $PageSize
3. $_SERVER["REQUEST_URI"] 関数
$_SERVER で始まるすべての定義済みサーバー変数のタイプこれらはサーバー変数でスケジュールされたものとして呼び出されます。
REQUEST_URI は、ドメイン名を除く完全なアドレス パスである現在の URI を取得するために使用されます。
例:
現在のページは次のとおりです: http://www.test.com/home.php?id=23&cid=22
echo $_SERVER["REQUEST_URI"]
結果は:/home.php ?id =23&cid=22
4. parse_url() URL解析関数
parse_url()は、URLを固定のキー値を持つ配列に解析する関数です
例
$ua=parse_url("http ://username :password@hostname/path?arg=value#anchor");
print_r($ua);
結果:
Array
(
; ホスト ドメイン名
)
メッセージのこのページングは 3 つの部分に分かれており、1 つはデータベース設計、1 つは接続ページ、もう 1 つは表示ページです。
(1) デザイン データベース
デザイン データベースは bbs と呼ばれるデータ テーブルで、タイトル、最終日付、ユーザー、コンテンツなどのフィールドが含まれており、それぞれメッセージのタイトル、メッセージの日付を表します。 、メッセージを残した人、メッセージの内容
(2) 接続ページ
$conn = @ mysql_connect("localhost", "root", "123456") or die( "データベース リンク エラー");
mysql_select_db("bbs", $conn );mysql_query("set names 'GBK'") // スペースと改行を解析可能な HTML に変換します
function htmtocode($content) {
$content = str_replace(" n", "
return $content;
}
//$content=str_replace(" '","'",$content);
//htmlspecialchars()
(3) ページを表示
include("conn.php ");
$pagesize=2; //設置每页显表示2个记录
$url=$_SERVER["REQUEST_URI"];
$url=parse_url($url);
$url=$url[パス];
$numq=mysql_query("SELECT * FROM `メッセージ`");
$num = mysql_num_rows($numq);
if($_GET[ページ]){
$pageval=$_GET[ページ];
$page=($pageval-1)*$pagesize;
$page.=',';
}
if($num > $pagesize){
if($pageval
「共 $num 条」をエコーします。
" 上一页 次页";
}
$SQL="SELECT * FROM `message` 制限 $page $pagesize ";
$query=mysql_query($SQL);
while($row=mysql_fetch_array($query)){
?>
<表の幅=500 border="0" cellpadding="5" cellpacing="1" bgcolor="#add3ef">
}
?>
(4)最終显示
转自: http://apps.hi.baidu.com/share/detail/33234872