ページングは、企業 Web サイトであろうとショッピング モールであろうと、私たちの PHP 開発においてよく知られているものだと思います。すべてのバックグラウンド管理はページングと切り離せないものであり、ページング効果は PHP Web ページでは一般的ですが、今日はページング効果を実現するために 2 つの方法を実行しました。
まず、データベースにテーブルを準備し、データを挿入する必要があります。これらは、図に示すように、必要な前提条件です (ライブラリ名は jereh、テーブル名は n_content)。 :
ステップ分析:
ページングが必要な場合は、「select * from tableName limit num1,num2」を使用する必要があります。これは、2 つのパラメーター num1 が後に続く、限定されたクエリ ステートメントです。 num2は検索する情報の番号で、どの番号から検索を開始しますか? 例えば、下図のように2、3、4の3つのデータを検索したいとします
それでは、手順を始めましょう: 1. クエリを制限する機能を実装する関数を作成します まず、この関数を実装するには、現在のページ数とページ数を知る必要があります。制限するページに表示する情報を、仮パラメータを使用して渡すことができます。次に、pageNum をページ数に設定し、1 ページに複数のデータを表示します。クエリステートメント「select * from tableName limit num1,num2」、num1 は (pageNum-1)*pageSize,num2 です。この関係を理解すると、コードは以下のようになります。//分页的函数 function news($pageNum = 1, $pageSize = 3) { $array = array(); $coon = mysqli_connect("localhost", "root"); mysqli_select_db($coon, "jereh"); mysqli_set_charset($coon, "utf8"); // limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度 $rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize; $r = mysqli_query($coon, $rs); while ($obj = mysqli_fetch_object($r)) { $array[] = $obj; } mysqli_close($coon,"jereh"); return $array; }上記のコードでは、limit の後にスペースを追加する必要があることに注意してください。そうしないとエラーが発生します 2 .ページの総数を表示する 2 番目の関数を作成します
新しい知識ポイントはありません。これには、前に書いたすべての知識ポイントがあります。コードを見てください
//显示总页数的函数 function allNews() { $coon = mysqli_connect("localhost", "root"); mysqli_select_db($coon, "jereh"); mysqli_set_charset($coon, "utf8"); $rs = "select count(*) num from n_content"; //可以显示出总页数 $r = mysqli_query($coon, $rs); $obj = mysqli_fetch_object($r); mysqli_close($coon,"jereh"); return $obj->num; }3. 事前処理としてこれら 2 つの関数を呼び出します 次のページとその次のページの結果を取得したいと思います。このページのデータを転送するには get メソッドを使用する必要があります。ページを更新すると get は間違いなくデータを取得しないので、コードを見てください
<?php @$allNum = allNews(); @$pageSize = 3; //约定每页显示的信息条数 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"]; @$endPage = ceil($allNum/$pageSize); //总页数 @$array = news($pageNum,$pageSize); ?>4。ページ ページに表示される場合は、foreach ループを使用する必要があります。コードは以下を参照してください
<table border="1" style="text-align: center" cellpadding="0"> <tr> <td>编号</td> <td>新闻标题</td> <td>来源</td> <td>点击率</td> <td>发布日期</td> </tr> <?php foreach($array as $key=>$values){ echo "<tr>"; echo "<td>{$values->id}</td>"; echo "<td>{$values->title}</td>"; echo "<td>{$values->src}</td>"; echo "<td>{$values->indexs}</td>"; echo "<td>{$values->times}</td>"; echo "</tr>"; } ?> </table>5. 実装 1 つのページで、次のページの効果を実現します。ページジャンプするには、a タグの href 属性を使用し、アドレス「?pageNum =...」を記述する必要があります。この pageNum は get Passed であるため、自分で定義します。前のステップで $_GET を使用してパラメーターを受け入れるため、get パラメーターを渡すだけで済みます。 ?>"次のページ:"pageNum=f553790c507e90e08c0eb9b215912451 "
最後のページ: "pageNum=4e03b1d3755baa7ed7a00b4afc79d138";
"pageNum=" の後にスペースを入れないように注意してください。コードは次のとおりです
<a href="?pageNum=1">首页</a> <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a> <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a> <a href="?pageNum=<?php echo $endPage?>">尾页</a>合計のコードは次のとおりです。
分页 <table border="1" style="text-align: center" cellpadding="0"> <tr> <td>编号</td> <td>新闻标题</td> <td>来源</td> <td>点击率</td> <td>发布日期</td> </tr> <?php foreach($array as $key=>$values){ echo "<tr>"; echo "<td>{$values->id}</td>"; echo "<td>{$values->title}</td>"; echo "<td>{$values->src}</td>"; echo "<td>{$values->indexs}</td>"; echo "<td>{$values->times}</td>"; echo "</tr>"; } ?> </table><a href="?pageNum=1">首页</a> <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a> <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a> <a href="?pageNum=<?php echo $endPage?>">尾页</a>
効果は次のとおりです:
概要:
関連する推奨事項:
PHPのページング原理の例
PHPのバックグラウンドテーブルページング関数を実装する方法
以上がページング効果を実装するPHPの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。