ホームページ >バックエンド開発 >PHPチュートリアル >メッセージボード_PHPチュートリアルに基づいたphpによるページングプログラムの詳細な説明
この記事では、PHP でのページングの原理に焦点を当てています。同時に、PHP でページングを実装する方法を説明します。これは、必要な方は参考にしてください。初心者に非常に適しています。
ページングの重要な問題は、実際には、Mysql のキーワード制限に続く 2 つの数値にあります。最初の数値は、記録する必要がある開始行番号であり、2 番目の数値は、この開始行番号の後に取得されるレコードの行数です。 --スタートラインとゴールラインを間違えないでください。大きな違いがあります。
index.php の 19 行目を見てください:
コードは次のとおりです | コードをコピー |
$recordSql = $sql.” LIMIT “.$page*$pagesize.”,”.$pagesize; |
変数 $page の判定は、プログラムの 8 行目と 9 行目で取得されます。
コードは次のとおりです | コードをコピー |
if(isset($_GET['page'])&&$_GET['page']!=”) $page=$_GET['page']; |
もちろん、$_GET['page'] 変数も見たことがありますが、これについては以下で説明します。
7 行目で変数 $pagesize を定義します。つまり、各ページに表示されるレコードの数を 10 と定義します。変数 $page=0 の場合、ステートメントは最終的に次のようになります:
コードは次のとおりです | コードをコピー |
$recordSql = "SELECT a . * 、b.name、b.email、b.qq、c.revert_time、c.revert 投稿から LEFT JOIN revert c ON ( a.id = c.post_id ) 、ゲスト b WHERE a.guest_id = b.id a.id DESC で注文 " リミット 0,10"; |
0 レコードから開始して 10 レコードの結果を取得します。これには 0 番目のレコードが含まれます。
$page=1 の場合はどうなるでしょうか?ご想像のとおり、現時点では $page*$pagesize=10 ですが、もちろん今までそんなことはありませんでした...これ以上は言いません、言うと長くなるでしょう。
コードをコピー | ||||||||||
|
コードは次のとおりです | コードをコピー |
レコードの総数、$numRecord = mysql_num_rows(mysql_query($sql)); 総ページ数、$totalpage = ceil($numRecord/$pagesize); |
「前ページ、次ページ」の表示方法以外は何も不足していません。index.php の 159 ~ 163 行目を見てください。非常に簡単です。
160行目:
コードをコピー | ||||||||||
|
コードをコピー | |
$pagesize = 10;//各ページに表示されるメッセージレコードの数
if(isset($_GET['page'])&&$_GET['page']!='') $page=$_GET['page'];
投稿から
$result = mysql_query($recordSql);
while($rs=mysql_fetch_object($result)){ | |
送信者: name?> |電子メール: email?>|QQ:< ? php echo $rs->qq?>|メッセージ時刻: post_time+8*3600)?> | |
"delete.php?id=id?>">削除 | |
メッセージの内容: post))?> 返信内容:revert))?>[revert_time!="") echo date("Y-m-d H:i: s",$rs->revert_time+8*3600)?> ] | |
if($page>0) echo "前のページ|" if($page<$totalpage-1) echo "次のページ" ?> |