การพัฒนาเว็บถือเป็นกระแสหลักของการพัฒนาโปรแกรมแบบกระจายในอนาคต โดยปกติแล้ว การพัฒนาเว็บจะเกี่ยวข้องกับการจัดการกับฐานข้อมูล ดังนั้นการเขียนโปรแกรมเพจจึงเป็นส่วนสำคัญของการพัฒนาเว็บ ในที่นี้ เราจะศึกษาการเขียนโปรแกรมเพจร่วมกัน
1. หลักการของโปรแกรมเพจจิ้ง
โปรแกรมเพจจิ้งมีสองพารามิเตอร์ที่สำคัญมาก: จำนวนเรคคอร์ดที่แสดงในแต่ละเพจ ($pagesize) และเพจใดคือเพจปัจจุบัน ($page) ด้วยพารามิเตอร์ทั้งสองนี้ เราสามารถเขียนโปรแกรมเพจจิ้งได้อย่างง่ายดาย เราใช้ฐานข้อมูล MySql เป็นแหล่งข้อมูล ใน mysql หากคุณต้องการลบเนื้อหาบางส่วนในตาราง คุณสามารถใช้คำสั่ง T-SQL ได้: เลือก * จากออฟเซ็ตขีดจำกัดตาราง แถวเพื่อให้บรรลุ ค่าชดเชยที่นี่คือค่าชดเชยการบันทึก และวิธีการคำนวณคือ offset=$pagesize*($page-1) แถวคือจำนวนบันทึกที่จะแสดง นี่คือ $page กล่าวอีกนัยหนึ่ง คำสั่ง select * จากขีดจำกัดตาราง 10,10 หมายถึงการดึงข้อมูล 20 เรคคอร์ดโดยเริ่มจากเรคคอร์ดที่ 11 ในตาราง
2. การวิเคราะห์โค้ดหลัก
$pagesize=10; //กำหนดจำนวนบันทึกที่แสดงในแต่ละหน้า
$conn=mysql_connect("localhost", "root", ""); // เชื่อมต่อกับฐานข้อมูล
$rs=mysql_query("select count(*) from tb_product",$conn); //รับจำนวนบันทึกทั้งหมด $rs
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//คำนวณจำนวนหน้าทั้งหมด
$pages=intval($numrows/$pagesize);
//ตัดสินการตั้งค่าหมายเลขหน้า
ถ้า (isset($_GET['page'])){
$page=intval($_GET['หน้า']);
-
อื่น{
$page=1; //มิฉะนั้น ให้ตั้งเป็นหน้าแรก
}
3. สร้างตารางกรณีการใช้งาน myTable
สร้างตาราง myTable(id int NOT NULL auto_increase, news_title varchar(50), news_cont text, add_time datetime, PRIMARY KEY(id))
4. กรอกโค้ด
<html>
<หัว>
<title><ตัวอย่างเพจ php</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</หัว>
<ร่างกาย>
<?php
$conn=mysql_connect("localhost", "root", "");
//กำหนดจำนวนเรคคอร์ดที่แสดงในแต่ละหน้า $pagesize=1;
mysql_select_db("mydata",$conn);
//รับจำนวนบันทึกทั้งหมด $rs และคำนวณจำนวนหน้าทั้งหมดโดยใช้ $rs=mysql_query("select count(*) from tb_product",$conn);
$myrow = mysql_fetch_array($rs);
$numrows=$myrow[0];
//คำนวณจำนวนหน้าทั้งหมด
$pages=intval($numrows/$pagesize);
ถ้า ($numrows%$pagesize)
$เพจ++;
//กำหนดจำนวนหน้าถ้า (isset($_GET['page'])){
$page=intval($_GET['หน้า']);
-
อื่น{
//ตั้งค่าเป็นหน้าแรก $page=1;
-
//คำนวณบันทึกชดเชย $offset=$pagesize*($page - 1);
//อ่านจำนวนบันทึกที่ระบุ $rs=mysql_query("select * from myTable order by id desc Limit $offset,$pagesize",$conn);
ถ้า ($myrow = mysql_fetch_array($rs))
-
$i=0;
?
<เส้นขอบของตาราง="0" ความกว้าง="80%">
<tr>
<ความกว้างtd="50%" bgcolor="#E0E0E0">
<p align="center"><หัวข้อ</td>
<ความกว้างtd="50%" bgcolor="#E0E0E0">
<p align="center"><เวลาเผยแพร่</td>
</tr>
<?php
ทำ {
$i++;
?
<tr>
<td width="50%""><?=$myrow["news_title"]?></td">
<td width="50%""><?=$myrow["news_cont"]?></td">
</tr>
<?php
-
ในขณะที่ ($myrow = mysql_fetch_array($rs));
echo "</ตาราง">";
-
echo "<div align='center'> มี ".$pages." หน้า (".$page"/".$pages.")";
สำหรับ ($i=1;$i< $page;$i++)
echo "<a href='fenye.php?page=".$i."'><[".$i "]</a> ";
echo "[".$เพจ"]";
สำหรับ ($i=$page+1;$i<=$pages;$i++)
echo "<a href='fenye.php?page=".$i."'><[".$i "]</a> ";
เสียงก้อง "</div>";
?
</ตัว>
</html>
5. สรุป
โค้ดตัวอย่างนี้ทำงานตามปกติบน windows2000 server+php4.4.0+mysql5.0.16 รูปแบบการแบ่งหน้าที่แสดงในตัวอย่างนี้คือ [1][2][3]…. หากคุณต้องการแสดงในรูปแบบของ "หน้าแรก หน้าก่อนหน้า หน้าถัดไป หน้าสุดท้าย" โปรดเพิ่มรหัสต่อไปนี้:
$first=1;
$ก่อนหน้า=$หน้า-1;
$ถัดไป=$หน้า+1;
$last=$pages;
if ($หน้า > 1)
-
echo "<a href='fenye.php?page=".$first."'>หน้าแรก</a> ";
echo "<a href='fenye.php?page=".$prev."'>หน้าก่อนหน้า</a> ";
}
ถ้า ($หน้า < $หน้า)
-
echo "<a href='fenye.php?page=".$next."'>หน้าถัดไป</a>
echo "<a href='fenye.php?page=".$last."'>หน้าสุดท้าย</a> ";
}
ที่จริงแล้ว การเขียนโค้ดแสดงเพจนั้นง่ายมาก ตราบใดที่คุณเชี่ยวชาญหลักการทำงานของมัน ฉันหวังว่าบทความนี้จะสามารถช่วยนักเขียนโปรแกรมเว็บที่ต้องการการเขียนโปรแกรมด้านนี้ได้