เมื่อเขียนโปรแกรมฐานข้อมูลเครือข่าย PHP จะต้องพิจารณาการแสดงผลบันทึกฐานข้อมูลอย่างหลีกเลี่ยงไม่ได้ เพื่อนำเสนอหน้าที่สวยงามและเร่งความเร็วในการโหลดหน้า บันทึกฐานข้อมูลจะต้องแสดงเป็นหน้าต่างๆ
ตอนนี้ผมจะแบ่งปันตัวอย่างการแสดงเพจของบันทึกฐานข้อมูล mysql ที่บูรณาการกับ PHP ได้อย่างสมบูรณ์แบบ
ฐานข้อมูล mysql คือ xinxiku และตารางข้อมูลเป็นเรื่องตลก คำจำกัดความของคำสั่ง SQL มีดังนี้:
สร้างตารางตลก (
id int(5) ไม่ใช่ null auto_increation,
biaoti varchar(40) ไม่ใช่ null,
ข้อความ neirong ไม่ใช่ null,
คีย์หลัก (id)
);
คำอธิบายฟิลด์:
รหัส: หมายเลขบันทึก เพิ่มขึ้นโดยอัตโนมัติ และคีย์หลัก
: ชื่อ
neirong: เนื้อหา
<html>
<head>
<title>วิธีการปรับใช้การแสดงเพจ</title>
<meta http-equiv=”content-type” content=”text/html; charset=gb2312″>
<script language=”javascript”>
/ * กำหนดหน้าต่างป๊อปอัปเพื่อแสดงเนื้อหาเฉพาะ*/
ฟังก์ชั่น popwin(url)
{
window.open(url,"","left=340, top=190, height=280, width=400, rezable=yes, scrollbars = ใช่, สถานะ=ไม่, แถบเครื่องมือ=ไม่, แถบเมนู=ไม่, ตำแหน่ง=ไม่”);
}
</script>
</head>
<body leftmargin=0 topmargin=0 rightmargin=0 >
<?php
//เชื่อมต่อกับฐานข้อมูล
$db =mysql_connect("localhost","root","");
mysql_select_db("xinxiku",$db);
//กำหนดจำนวนเรคคอร์ดที่แสดงในแต่ละหน้า
$pagesize=15;
//รับจำนวนรวมของ
บันทึกและคำนวณจำนวน
หน้าทั้งหมด ใช้
$res=mysql_query(”select count(*) from joke ”,$db);
$myrow = mysql_fetch_array($res);
$numrows=$myrow[0];
ของหน้า
$pages=intval( $numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
// กำหนดว่าหมายเลขหน้าถูกกำหนดไว้หรือไม่, ให้กำหนดเป็นหน้าแรก
if (!isset( $page))
$page=1;
//กำหนดไปที่หมายเลขหน้า
if (isset
($ys))
if ($ys>$pages)
$page=$pages;
else
$page=$ys;
$offset=$pagesize*($page- 1);
//
รับบันทึก
$res=mysql_query("select id,biaoti from joke order by id desc Limit $offset,$pagesize" ,$db);
ถ้า ($myrow = mysql_fetch_array($res) )
{
$i=0;
?>
<table width=”101%” border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td width= ”5%” bgcolor=”#e1e9fb” ></td>
<td width=”95%” bgcolor=”#e1e9fb”><font color=”#ff6666″ size=”2″>เนื้อหา</font>< /td>
</tr>
<?php
ทำ {
$i++;
?>
<tr>
<td width=”5%” bgcolor=”#e6f2ff”><?php echo $i;?></td>
<td width=”95%” bgcolor=”# e6f2ff”><font size="2″>
<a href="javascript:popwin('jokenr.php?id=<?php echo $myrow[0];?>' )" ><?php echo $myrow[ 1];?></a></font></td>
</tr>
<?php
}
ในขณะที่ ($myrow = mysql_fetch_array($res));
echo “< /table>” ;
}
//แสดงจำนวนหน้าทั้งหมด
echo "<div align='center'>มีหน้า ".$pages." (".$page."/".$pages.")<br> ";
//แสดงจำนวนหน้า
สำหรับ ($i =1;$i<$page;$i++)
echo “<a href='fy.php?page=”.$i.”'>หน้า “.$ ฉัน ”</a> “;
echo “Page ".$page"page";
for ($i=$page+1;$i<=$pages;$i++)
echo "<a href='fy. php?page=".$i."'> Page ".$i"</a> ";
echo "<br>";
//แสดงหมายเลขหน้า
echo "<form action='fy.php' method ='post'> ";
//คำนวณค่าหน้าของหน้าแรก หน้าก่อนหน้า หน้าถัดไป และหน้าสุดท้าย
$first=1;
$prev=$page-1;
$next=$page+1;
$last= $หน้า;
ถ้า ($หน้า>1)
-
echo “<a href='fy.php?page=”.$first.”’>หน้าแรก</a> “;
echo “<a href='fy.php?page=”.$prev.”'>ก่อนหน้า . หน้า</a> ";
}
if ($page<$pages)
{
echo "<a href='fy.php?page=".$next."'>หน้าถัดไป</a> ";
echo " < a href='fy.php?page=”.$last.”'>หน้าสุดท้าย</a> “;
}
echo “ไปที่ <input type=text name=’ys’ size=’2′ value=” $page.">หน้า";
echo "<input type=submit' value='go'>";
echo
"
</div>"
;
</html>
หน้าก่อนหน้า 1 23คำอธิบายโปรแกรม
หน้าถัดไป
:1. คำอธิบายตัวแปร
ตัวแปร $page: เก็บหมายเลขหน้าปัจจุบันที่จะแสดง
ตัวแปร $pages: เก็บจำนวนหน้าทั้งหมด
ตัวแปร $offset: เก็บค่าชดเชยของหมายเลขหน้าปัจจุบัน
ตัวแปร $pagesize: เก็บจำนวนเรคคอร์ดที่แสดงในแต่ละหน้า
2. คำอธิบายคำสั่ง MySQL
เลือก id,biaoti จากคำสั่งตลกโดย id desc จำกัด $offset,$pagesize
ส่วนคำสั่งจำกัดใช้เพื่อจำกัดจำนวนแถวที่ส่งคืนโดยคำสั่ง select พารามิเตอร์ตัวแรกที่มีขีดจำกัดระบุออฟเซ็ตของแถวแรกที่จะส่งคืน และพารามิเตอร์ตัวที่สองระบุจำนวนแถวสูงสุดที่จะส่งคืน ซึ่งก็คือขนาดหน้า
หลักการใช้งาน:
ส่งผ่านหน้าตัวแปรหมายเลขหน้าในโปรแกรม คำนวณออฟเซ็ตตำแหน่งบันทึกเริ่มต้นตามค่าหน้าที่ส่งเมื่อดึงบันทึก จากนั้นรับชุดบันทึกตามจำนวนบันทึกที่ต้องแสดงในแต่ละขนาดหน้า แล้วแสดงมันออกมา
ฟังก์ชั่นการใช้งานโปรแกรม:
โปรแกรมมีวิธีการแสดงเพจสองวิธี (สมมติว่าหน้าปัจจุบันคือหน้าที่สาม)
1. แสดงหมายเลขหน้าทั้งหมดและระบุลิงก์ตามจำนวนหน้า ไม่มีลิงก์สำหรับหน้าปัจจุบัน เหมาะเมื่อจำนวนหน้าไม่ใหญ่เกินไป สไตล์แสดงในรูปที่ 1:
/ShowImg.asp?p=/2006-3-29/19430aimagea1.jpg
2. ระบุจำนวนหน้าทั้งหมด และเปลี่ยนหน้าผ่านหน้าแรกที่ให้ไว้ หน้าก่อนหน้า หน้าถัดไป หน้าสุดท้าย และข้ามไปยัง แน่นอนว่าหากหน้าปัจจุบันคือทุกหน้าจะไม่มีลิงก์ไปยังหน้าแรกและหน้าก่อนหน้า หากหน้าปัจจุบันคือหน้าสุดท้าย จะไม่มีลิงก์ไปยังหน้าถัดไปและหน้าสุดท้าย
หน้าก่อน 1 2 3