#1. 設定情報のカプセル化
1. 設定ファイル config.php を作成できます。定数として使用する必要があるすべての構成を設定します。コードは次のとおりです:<?php //数据库服务器 define('DB_HOST', 'localhost'); //数据库用户名 define('DB_USER', 'root'); //数据库密码 define('DB_PWD', 'secret'); //库名 define('DB_NAME', 'book'); //字符集 define('DB_CHARSET', 'utf8');2. 2. connection.php ページを抽出します。将来データベースに接続する必要がある場合は、 connection.php ファイルを含める必要があるだけです。 コードは次のとおりです:
<?php include 'config.php';$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, DB_CHARSET); ?>今後、各ファイルに connection.php ファイルを直接含めることでデータベース接続を実現できます:
include 'connection.php';
2. 表示ページングの実装
limit offset , num#1 ページに 5 つの項目が表示されると仮定します。ページングの制限を制御するための最終的な式は次のとおりです:
offset的值为 (n-1)*5 num 为规定的5
3. 実装手順;
1 . ページングに必要なパラメータの計算
1-1、総数通过查询user表的count(id),得到总数$count。 $count_sql = 'select count(id) as c from user'; $result = mysqli_query($conn, $count_sql); $data = mysqli_fetch_assoc($result); //得到总的用户数 $count = $data['c'];1-2、現在のページ
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;2 つ目の書き方:
if (isset($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; }1-3、最後のページ
//每页显示数 $num = 5; $total = ceil($count / $num);1-4. 上下ページの異常事態の制御
最終ページに追加した場合は最終ページ、つまり例外制御が完了します。
if ($page <= 1) { $page = 1; } if ($page >= $total) { $page = $total; }
2. SQL ステートメント
$num = 5; $offset = ($page - 1) * $num;$num と $offset を SQL ステートメントに適用します:
$sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num";URI のページング値を制御します
echo '<tr> <td colspan="5"> <a href="page.php?page=1">首页</a> <a href="page.php?page=' . ($page - 1) . '">上一页</a> <a href="page.php?page=' . ($page + 1) . '">下一页</a> <a href="page.php?page=' . $total . '">尾页</a> 当前是第 ' . $page . '页 共' . $total . '页 </td> </tr>';
4. 全体的なコード実装
include 'connection.php'; $count_sql = 'select count(id) as c from user'; $result = mysqli_query($conn, $count_sql); $data = mysqli_fetch_assoc($result); //得到总的用户数 $count = $data['c']; $page = isset($_GET['page']) ? (int) $_GET['page'] : 1; /* if (isset($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; } */ //每页显示数 $num = 5; //得到总页数 $total = ceil($count / $num); if ($page <= 1) { $page = 1; } if ($page >= $total) { $page = $total; } $offset = ($page - 1) * $num; $sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num"; $result = mysqli_query($conn, $sql); if ($result && mysqli_num_rows($result)) { //存在数据则循环将数据显示出来 echo '
' . $row['username'] . ' | '; echo '' . date('Y-m-d H:i:s', $row['createtime']) . ' | '; echo '' . long2ip($row['createip']) . ' | '; echo '编辑用户 | '; echo '删除用户 | '; echo '
首页 上一页 下一页 尾页 当前是第 ' . $page . '页 共' . $total . '页 |
#上記のコンテンツは、単純なページング機能を実現しています。その他の関連コンテンツについては、PHP 中国語 Web サイトを参照してください: PHP ビデオ チュートリアル
以上がPHPでページングを実装するための原則と手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。