1. Stellen Sie eine Verbindung zur Datenbank her Das Schlüsselwort /code> ist implementiert. Wir fragen beispielsweise die ersten beiden Daten in einer Tabelle ab:
$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');
limit
erfordert zwei Parameter Der zweite Parameter gibt an, wie viele Elemente gleichzeitig abgerufen werden sollen. SQL
-Anweisung ausgedrückte Bedeutung darin, mit dem 0. Element zu beginnen und 2 Elemente zu nehmen (tatsächlich ist 0 das 1. Element und die Zählung beginnt bei 0). Dann fahren Sie mit dem Abrufen der zweiten Seite fort, es gibt noch 2 Datenstücke, dann lautet die SQL
-Anweisung: select * from student limit 0, 2
select * from student limit 2, 2
limit
wurde bestimmt, also wie bestimmt man den ersten Parameter? Tatsächlich lauten die Regeln wie folgt: Seite 1: 0, 2 (Seite 1 wird von der Position 0 übernommen und es werden 2 Elemente übernommen, also 0 1)
Seite 2: 2, 2 (Seite 2 wird von 2 übernommen. Nehmen Sie die Position von ein, nehmen Sie 2 Einträge, also 2 3 )
Seite 3: 4, 2 (Seite 3, nehmen Sie die Position von 4, nehmen Sie 2 Einträge, also 4 5 )
Seite 4: 6 , 2 (Seite 4 wird von der Position 6 genommen, und es werden 2 Elemente genommen, also 6 7)
...
Seite 1: (1 - 1) * 2 = 0
Seite 2: (2 - 1) * 2 = 2
Seite 3: (3 - 1) * 2 = 4
…MySQL
中limit
关键字来实现的,例如我们查询一个表中的前两条数据:
select * from student limit 4, 2
limit
后需要两个参数,第一个参数代表从第几条开始取;第二个参数代表一次取几条。
那么上述SQL
语句表达的意思为从第 0 条开始取,取 2 条(实则 0 为第 1 条,计数从 0 开始)。
我们把取到的前两条数据作为第一页。
那么继续取第二页,还是 2 条数据,则SQL
语句为:
$pageSize = 2;
第三页:
$page = 1;
以此类推,我们发现每页始终是两条,所以limit
的第二个参数(即 2)已经确定好了,那么第一个参数该如何确定呢?其实其中的规律如下:
第 1 页:0,2 (第 1 页从 0 的位置取,取 2 条,即 0 1 )
第 2 页:2,2 (第 2 页从 2 的位置取,取 2 条,即 2 3 )
第 3 页:4,2 (第 3 页从 4 的位置取,取 2 条,即 4 5 )
第 4 页:6,2 (第 4 页从 6 的位置取,取 2 条,即 6 7 )
……
所以每页的起始位置 = (当前页 - 1) * 每页显示的条数
第 1 页:(1 - 1) * 2 = 0
第 2 页:(2 - 1) * 2 = 2
第 3 页:(3 - 1) * 2 = 4
……
$start = ($page - 1) * $pageSize;
select * from student limit $start, $pageSize;
limit
需要的第一个参数if ($_GET['page']) { $page = $_GET['page'];} else { $page = 1; // 接收不到按照 1 处理,即默认第 1 页}
所以SQL语句为:
$sql = "select * from student limit $start, $pageSize";$query = mysqli_query($connect, $sql);$result = mysqli_fetch_all($query, MYSQLI_ASSOC);
这时改变$page
的值,就可以查询对应页的数据。
$page
参数来定义当前页为了更加的灵活我们通过地址栏传参得到想要显示的页数,所以第四步的代码改为:
<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>
将SQL
语句执行:
<button>上一页</button><button>下一页</button>
将结果输出到HTML
表格:
$up = $page - 1;
增加上下页按钮:
$next = $page + 1;
当点击上一页
,我们需要给当前页$page - 1
;
当点击下一页
,我们需要给当前页$page + 1
;
在当前页的基础上确定上一页:
<a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a><a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a>
假设当前页为第 2 页,那么$up
则为 2 - 1 = 1,即上一页是第 1 页。
在当前页的基础上确定下一页:
if ($page == 1) { $up = 1;} else { $up = $page - 1;}
假设当前页为第 2 页,那么$next
则为 2 + 1 = 3,即下一页是第 3 页。
所以我们给按钮加一个超链接,链接到当前页,并携带一个page
参数,值为相应的页数。
$sql = "select * from student";$query = mysqli_query($connect, $sql);$num = mysqli_num_rows($query);
但是$up
和$next
并不是无限加减的,当已经是第一页的时候,$up
不可再继续减,所以在确定上一页的时候需要加一个判断。
$totalPage = ceil($num / $pageSize);
同理,确定下一页的时候也需要判断,什么时候不可以继续下一页了呢?当当前页已经是最后一页的时候不可继续下一页,最后一页如何判定,取决于当前表的总条数,当前表如果有 10 条数据,每页显示 2 条,那么需要分 10 / 2 = 5 页,这个 5 就是最后一页,如果有 11 条数据,那么需要分 11 / 2 = 5.5 页,说明分 5 页还剩下 1 条,所以直接分 6 页,即向上取整,那么这个 6 就是最后一页。
求出总条数:
if ($page == $totalPage) { $next = $totalPage;} else { $next = $page + 1; }
根据总条数
和每页显示的条数
form-7.php
limit
gemäß der Formel<?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>
rrreeeGeben Sie die Ergebnisse an die ausZu diesem Zeitpunkt kann das Ändern des Werts von
rrreee$page
die Daten der abfragen entsprechende Seite. 6. Übergeben Sie Parameter über die Adressleiste, um den Parameter$page
zu erhalten, um die aktuelle Seite zu definieren. Um flexibler zu sein, übergeben wir Parameter über die Adressleiste, um die Anzahl der Seiten zu erhalten Sie möchten anzeigen, also ändern Sie den Code in Schritt 4 zu: rrreee 7. Steuern Sie den oberen und unteren Seitenwechsel über Schaltflächen Führen Sie dieSQL
-Anweisung aus:
HTML
-Tabelle: 🎜rrreee🎜Schaltfläche „Seite nach oben und unten hinzufügen“: 🎜rrreee🎜Wenn wir auf Vorherige Seite
klicken, müssen wir der aktuellen Seite $page - 1;<br> Wenn wir auf <code>Nächste Seite
klicken, müssen wir die aktuelle Seite $page + 1
angeben. 🎜🎜Bestimmen Sie die vorherige Seite basierend auf aktuelle Seite: 🎜rrreee🎜Angenommen, die aktuelle Seite ist Seite 2, dann $up
Dann ist es 2 - 1 = 1, das heißt, die vorherige Seite ist Seite 1. 🎜🎜Bestimmen Sie die nächste Seite basierend auf der aktuellen Seite: 🎜rrreee🎜Angenommen, die aktuelle Seite ist Seite 2, dann ist $next
2 + 1 = 3, das heißt, die nächste Seite ist Seite 3. 🎜🎜Also fügen wir der Schaltfläche einen Hyperlink hinzu, verlinken auf die aktuelle Seite und tragen einen page
-Parameter, der Wert ist die entsprechende Seitennummer. 🎜rrreee🎜Aber $up
und $next
sind keine unendlichen Additionen und Subtraktionen. Wenn es sich bereits um die erste Seite handelt, kann $up
nicht hinzugefügt werden Reduzieren Sie weiter, sodass Sie bei der Bestimmung der vorherigen Seite ein Urteil hinzufügen müssen. 🎜rrreee🎜Ebenso müssen Sie auch bei der Bestimmung der nächsten Seite urteilen. Wann können Sie nicht mit der nächsten Seite fortfahren? Wenn die aktuelle Seite bereits die letzte Seite ist, können Sie nicht mit der nächsten Seite fortfahren. Die Bestimmung der letzten Seite hängt von der Gesamtzahl der Elemente in der aktuellen Tabelle ab, wenn die aktuelle Tabelle 10 Daten enthält und jede Seite 2 anzeigt Teile, dann muss es in 10/2 = 5 Seiten unterteilt werden, diese 5 ist die letzte Seite. Wenn es 11 Datenteile gibt, muss es in 11/2 = 5,5 Seiten unterteilt werden, was bedeutet, dass es welche gibt Nach der Aufteilung in 5 Seiten bleibt noch 1 Stück übrig, also wird es direkt in 6 Seiten aufgeteilt, also aufgerundet, dann ist diese 6 die letzte Seite. 🎜🎜Finden Sie die Gesamtzahl der Artikel: 🎜rrreee🎜Finden Sie anhand von Gesamtzahl der Artikel
und Anzahl der auf jeder Seite angezeigten Artikel
heraus, wie viele Seiten unterteilt werden müssen : 🎜rrreee🎜Also urteilen Sie. Wenn es eine Seite ist, wird sie geändert in: 🎜rrreee🎜 8. Vollständiger Code 🎜rrreeerrreee🎜🎜🎜Verwandte kostenlose Lernempfehlungen: 🎜🎜🎜MySQL-Datenbank🎜🎜🎜(Video)🎜 🎜🎜Das obige ist der detaillierte Inhalt vonEinführung von PHP + MySQL zur Realisierung der Paging-Anzeige von Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!