Heim  >  Artikel  >  Datenbank  >  Einführung von PHP + MySQL zur Realisierung der Paging-Anzeige von Daten

Einführung von PHP + MySQL zur Realisierung der Paging-Anzeige von Daten

coldplay.xixi
coldplay.xixinach vorne
2021-04-26 09:17:252925Durchsuche

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');
Einführung von PHP + MySQL zur Realisierung der Paging-Anzeige von Datenlimit erfordert zwei Parameter Der zweite Parameter gibt an, wie viele Elemente gleichzeitig abgerufen werden sollen.
Dann besteht die durch die obige 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).
Wir nehmen die ersten beiden erhaltenen Daten als erste Seite.

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
Die dritte Seite:
select * from student limit 2, 2
In Analogie finden wir, dass es immer welche gibt zwei Daten pro Seite, also Der zweite Parameter (d. h. 2) von 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)
...

Also die Ausgangsposition von jedem Seite = (aktuelle Seite - 1) * die Anzahl der auf jeder Seite angezeigten Elemente

Seite 1: (1 - 1) * 2 = 0
Seite 2: (2 - 1) * 2 = 2
Seite 3: (3 - 1) * 2 = 4
MySQLlimit关键字来实现的,例如我们查询一个表中的前两条数据:

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[&#39;id&#39;]; ?></td>
		<td><?php echo $v[&#39;name&#39;]; ?></td>
		<td><?php echo $v[&#39;age&#39;]; ?></td>
		<td><?php echo $v[&#39;sex&#39;]; ?></td>
		<td><?php echo $v[&#39;mobile&#39;]; ?></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;	}

根据总条数每页显示的条数

3. Definieren Sie die Anzahl der auf jeder Seite angezeigten Elemente

form-7.php
5 Parameter erforderlich für limit gemäß der Formel
<?php// 连接数据库$connect = mysqli_connect(&#39;localhost&#39;, &#39;用户名&#39;, &#39;密码&#39;, &#39;数据库名&#39;) or die(&#39;数据库连接失败&#39;);mysqli_set_charset($connect, &#39;utf8&#39;);// 查询总条数$sql = "select * from student";$query = mysqli_query($connect, $sql);// 返回结果集中行的数量$num = mysqli_num_rows($query);// 定义每页显示几条$pageSize = 2;// 一共分几页$totalPage = ceil($num / $pageSize);// 获取当前页if ($_GET[&#39;page&#39;]) {
	$page = $_GET[&#39;page&#39;];} 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[&#39;id&#39;]; ?></td>
			<td><?php echo $v[&#39;name&#39;]; ?></td>
			<td><?php echo $v[&#39;age&#39;]; ?></td>
			<td><?php echo $v[&#39;sex&#39;]; ?></td>
			<td><?php echo $v[&#39;mobile&#39;]; ?></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>
So SQL Die Anweisung lautet:
rrreee

Zu diesem Zeitpunkt kann das Ändern des Werts von $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 die SQL-Anweisung aus:

rrreee
Geben Sie die Ergebnisse an die 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen