PHP ページングの原理

WBOY
WBOYオリジナル
2016-06-23 14:30:56935ブラウズ

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
(
; ホスト ドメイン名

ユーザー名; ] =>アンカー ;

)


5. コード例


メッセージのこのページングは​​ 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", "
", str_replace(" ", " ", $content)); //ネストされた 2 つの str_replace


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

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