$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');
関連する無料学習の推奨事項: mysql ビデオ チュートリアル
2. SQL ステートメントの構築 ページングは、MySQL の
limit キーワードを使用して実際に実装されます。たとえば、次の最初の行をクエリします。テーブル。2 つのデータ:
select * from student limit 0, 2
limit には 2 つのパラメータが必要です。最初のパラメータはフェッチを開始する項目の数を表し、2 番目のパラメータは一度にフェッチする項目の数を表します。
すると、上記の
SQL ステートメントで表現される意味は、0 番目の項目から開始して 2 項目を取るということになります (実際には 0 が 1 番目の項目で、0 からカウントされます)。
SQL ステートメントは次のようになります:
select * from student limit 2, 23 番目のページ:
select * from student limit 4, 2など、ページごとに常に 2 つの項目があることがわかりました。そのため、
limit の 2 番目のパラメーター (つまり 2) が決定されました。では、最初のパラメーターを決定するにはどうすればよいでしょうか?実際、ルールは次のとおりです。
ページ 2: 2 , 2 (ページ 2 ページは 2 の位置から取得され、2 つのエントリが取得されます。つまり、2 3)
ページ 3: 4, 2 (ページ 3 は 4 の位置から取得され、2 つのエントリが取得されます)取得、つまり 4 5)
ページ 4: 6, 2 (ページ 4 は 6 の位置から取得され、2 つの項目が取得、つまり 6 7)
...
ページ 2: (2 - 1) * 2 = 2
ページ 3: (3 - 1) * 2 = 4
……
$pageSize = 2;
$page = 1;
最初のパラメータが必要です
$start = ($page - 1) * $pageSize;
select * from student limit $start, $pageSize;このとき、
$page の値を変更すると、対応するページのデータをクエリできるようになります。
パラメーターを取得します。
if ($_GET['page']) { $page = $_GET['page'];} else { $page = 1; // 接收不到按照 1 处理,即默认第 1 页}7. ボタンを使用して上下のページ切り替えを制御します
SQL ステートメント:
$sql = "select * from student limit $start, $pageSize";$query = mysqli_query($connect, $sql);$result = mysqli_fetch_all($query, MYSQLI_ASSOC);結果は
HTML テーブルに出力されます:
<table border="1" cellspacing="0" cellpadding="0" style="width: 50%;text-align: center;"> <caption>学生列表</caption> <tr> <td>ID</td> <td>姓名</td> <td>年龄</td> <td>性别</td> <td>手机号</td> </tr> <?php foreach ($result as $v) { ?> <tr> <td><?php echo $v['id']; ?></td> <td><?php echo $v['name']; ?></td> <td><?php echo $v['age']; ?></td> <td><?php echo $v['sex']; ?></td> <td><?php echo $v['mobile']; ?></td> </tr> <?php } ?></table>上下のページ ボタンを追加します:
<button>上一页</button><button>下一页</button>
前ページをクリックする場合は、現在のページを指定する必要があります
$page - 1;
次ページをクリックする場合は、現在のページを指定する必要があります現在のページ
$page 1;
$up = $page - 1;現在のページが 2 ページであると仮定し、その後
$up は 2 - 1 = 1、つまり前のページが 1 ページ目です。
$next = $page + 1;現在のページが 2 ページであると仮定すると、
$next は 2 1 = 3、つまり、次の 1 ページは 3 ページです。
page パラメーターを渡します。値は対応するページ番号です。
<a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a><a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a>ただし、
$up と
$next は無限に加算または減算するわけではありません。すでに最初のページである場合、
$up は続行できませんを減らすため、前のページを決定するときに判断を追加する必要があります。
if ($page == 1) { $up = 1;} else { $up = $page - 1;}同様に、次のページを決める際にも判断が必要ですが、次のページに進めないのはどんなときでしょうか?現在のページがすでに最後のページである場合、次のページに進むことはできません。最後のページを決定する方法は、現在のテーブルのエントリの総数によって異なります。現在のテーブルに 10 個のデータがあり、各ページに 2 個のデータが表示される場合データが 11 個ある場合、10 / 2 = 5 ページに分割する必要があり、この 5 が最後のページになります。データが 11 個ある場合は、11 / 2 = 5.5 ページに分割する必要があります。 5ページに分割して1枚余ったので、そのまま6ページに分割、つまり切り上げて、この6ページが最後のページとなります。 アイテムの合計数を確認します:
$sql = "select * from student";$query = mysqli_query($connect, $sql);$num = mysqli_num_rows($query);
アイテムの合計数および
各ページに表示されるアイテムの数によると、何ページに分割する必要があるか:
$totalPage = ceil($num / $pageSize);したがって、次のページを判断するときは、次のように変更します:
if ($page == $totalPage) { $next = $totalPage;} else { $next = $page + 1; }8. 完全なコード
form-7.php
<?php// 连接数据库$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');// 查询总条数$sql = "select * from student";$query = mysqli_query($connect, $sql);// 返回结果集中行的数量$num = mysqli_num_rows($query);// 定义每页显示几条$pageSize = 2;// 一共分几页$totalPage = ceil($num / $pageSize);// 获取当前页if ($_GET['page']) { $page = $_GET['page'];} else { $page = 1;}// 在当前页的基础上确定上一页if ($page == 1) { $up = 1;} else { $up = $page - 1;}// 在当前页的基础上确定下一页if ($page == $totalPage) { $next = $totalPage;} else { $next = $page + 1; }// 求出 limit 的第一个参数$start = ($page - 1) * $pageSize;$sql = "select * from student limit $start, $pageSize";$res = mysqli_query($connect, $sql);$result = mysqli_fetch_all($res, MYSQLI_ASSOC);?><!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>Document</title> </head> <body> <table border="1" cellspacing="0" cellpadding="0" style="width: 50%;text-align: center;"> <caption>学生列表</caption> <tr> <td>ID</td> <td>姓名</td> <td>年龄</td> <td>性别</td> <td>手机号</td> </tr> <?php foreach ($result as $v) { ?> <tr> <td><?php echo $v['id']; ?></td> <td><?php echo $v['name']; ?></td> <td><?php echo $v['age']; ?></td> <td><?php echo $v['sex']; ?></td> <td><?php echo $v['mobile']; ?></td> </tr> <?php } ?> </table> <a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a> <a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a> </body></html>
関連する無料学習の推奨事項: mysql データベース(ビデオ)
以上がデータのページング表示を実現するPHP + MySQLの導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。