本教程將告訴你如何選擇從一個MySQL數據庫中的數據,在多個頁面上分裂,並顯示它使用頁碼。 我們有MySQL的表名為“學生”90記錄與以下領域: 名稱-數據類型為varchar(250) ****** -為varchar(250), 而是做一個單一的SELECT查詢,並顯示所有90記錄,我們可以在一個頁面上有5頁20條記錄每個包含最多。要做到這一點,我們將需要使用LIMIT子句的SELECT命令,所以我們可以限制查詢只顯示20條記錄。LIMIT子句也允許你指定哪個記錄開始。例如,此查詢
$sql = "SELECT * FROM students ORDER BY name ASC LIMIT 0, 20";
返回20條記錄,從第一個記錄開始按名稱排序。這下查詢
$sql = "SELECT * FROM students ORDER BY name ASC LIMIT 50, 20";
再次排序的名字,但這個時候,它會從第50記錄20條記錄。
所以基本上在此條款(限制開始,計數)“開始”指定的起始記錄和“計數”指定顯示多少記錄。 接下來的事情做的是做一個PHP文件稱為pagination.php將表從我們的記錄顯示第20。代碼在下面選擇,然後打印在表中的數據。
<?php
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * 20;
$sql = "SELECT * FROM students ORDER BY name ASC LIMIT $start_from, 20";
$rs_result = mysql_query ($sql, $connection);
?>
<table>
<tr><td>Name</td><td>Phone</td></tr>
<?php
while ($row = mysql_fetch_assoc($rs_result)) {
?>
<tr>
<td><? echo $row["Name"]; ?></td>
<td><? echo $row["PhoneNumber"]; ?></td>
</tr>
<?php
};
?>
</table>
現在,當你打開pagination.php在您的網頁浏覽器,你會看到從您的“學生”表中顯示的第20條記錄的表 第2行以上的代碼
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * 20;
被用來創建一個$ start_from的變量,取決於我們要查看的頁。後來,你會看到,我們將通過“頁”的價值,使用到不同的頁面的URL(例如pagination.php?= 2頁)。下一步,我們需要找出在我們的餐桌和頁面,我們需要的數量總額的記錄。要做到這一點,我們運行另一個查詢使用COUNT()函數。 站長百科
$sql = "SELECT COUNT(Name) FROM students";
$rs_result = mysql_query($sql,$connection);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];
美元total_records現在是平等的,我們有我們的數據庫中,90在我們的例子中,記錄的數量。我們有20每頁記錄,以便將需要的頁面的總數是5(4頁20條記錄和最後一頁,將有10條記錄)。 計算需要使用PHP可以使用CEIL()函數的網頁數量。
$total_pages = ceil($total_records / 20);
我們的記錄總數除以每頁的記錄,然後CEIL()函數將向上捨入的結果。現在我們有2個新的變量- $ total_records等於90美元total_pages等於5
要打印的頁碼和聯營公司的網址,每個號碼,我們會為()循環使用。
<?php
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='pagination.php?page=".$i."'>".$i."</a> ";
};
?>
上面的代碼將打印數字從1到5,每個數字將創建不同 你可以看到每一個環節,這是上面的SELECT查詢中使用不同的頁面價值傳遞。 最後,你應該有一個這樣的文件(記得添加MySQL連接字符串):
<?php
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * 20;
$sql = "SELECT * FROM students ORDER BY name ASC LIMIT $start_from, 20";
$rs_result = mysql_query ($sql,$connection);
?>
<table>
<tr><td>Name</td><td>Phone</td></tr>
<?php
while ($row = mysql_fetch_assoc($rs_result)) {
?>
<tr>
<td><? echo $row["Name"]; ?></td>
<td><? echo $row["PhoneNumber"]; ?></td>
</tr>
<?php
};
?>
</table>
<?php
$sql = "SELECT COUNT(Name) FROM students";
$rs_result = mysql_query($sql,$connection);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];
$total_pages = ceil($total_records / 20);
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='pagination.php?page=".$i."'>".$i."</a> ";
};
?>
這pagination.php文件將打印最多20每頁記錄和底部5頁碼指向一個頁面顯示不同的20條記錄的表。 不要忘了一小筆費用,我可以添加分頁你所有的PHP文件。讓我知道如果你需要幫助,我會給你一個報價。