เราทุกคนรู้ดีว่าการใช้ php+mysql ในการแสดงข้อมูลฐานข้อมูลทั้งหมดบนเว็บเพจนั้นง่ายและน่าสนใจมาก เมื่อข้อมูลฐานข้อมูลมีขนาดเล็กมาก การแสดงหน้าเพจก็ยังน่าพอใจ แต่เมื่อมีข้อมูลฐานข้อมูลจำนวนมาก การแสดงหน้า สถานการณ์จะแย่มาก ขอแนะนำวิธีการแสดงจำนวนข้อมูลบนหน้าปัจจุบันและวิธีใช้ฟังก์ชันพลิกแบบไดนามิก
ที่นี่เราจะแนะนำการใช้งานฟังก์ชันแสดงการพลิกหน้าสองหน้า:
-------------------------------------------------- -------------------------------------------------- ----------
ก่อนอื่นให้ฉันแนะนำไวยากรณ์ฐานข้อมูลที่ใช้ในการเปลี่ยนหน้า:
mysql_query("select * from table order by id desc");
คำสั่งฐานข้อมูลนี้คุ้นเคยกันดี มันมีบทบาทในฟังก์ชันการเปลี่ยนหน้า และไวยากรณ์แบบขยายต่อไปนี้เป็นฟังก์ชันหลักของการเปลี่ยนหน้า:
mysql_query("select * from table order by id desclimit $start,$limit");
โดยที่ $start คือฐานข้อมูล The บรรทัดเริ่มต้นของการค้นหา $limit คือการค้นหาจากบรรทัดเริ่มต้นจนถึงจุดสิ้นสุดของระเบียน $limit ด้วยฟังก์ชันหลักนี้ เราสามารถเริ่มฟังก์ชันการเปลี่ยนหน้าได้
-------------------------------------------------- -------------------------------------------------- ----------
ฟังก์ชั่นการเปลี่ยนหน้าแรก:
ฟังก์ชั่นที่แนะนำในที่นี้เป็นฟังก์ชั่นที่ง่ายที่สุดในบรรดาฟังก์ชั่นการเปลี่ยนหน้า สามารถรับรู้ได้เฉพาะฟังก์ชั่นการเปลี่ยนหน้าของข่าวพิเศษและศูนย์ดาวน์โหลดของเว็บไซต์นี้คือสิ่งนี้
ขั้นแรกเราจะแนะนำการใช้งานของ ฟังก์ชั่นการเปลี่ยนหน้า
บันทึก
ข้อมูลที่แสดงคงที่บนหน้าปัจจุบัน สมมติว่ามี 20 บันทึก ตั้งค่า $limit เป็น 20: $limit=20;
ดังนั้นให้ตั้งค่า $start ที่นี่ ค่าเริ่มต้นคือ 0: $start=0;
และการใช้งานฟังก์ชันการเปลี่ยนหน้าจะขึ้นอยู่กับการเปลี่ยนแปลงแบบไดนามิกของ $start เมื่อเปลี่ยนหน้าไปข้างหลัง $start จะเพิ่ม $limit: $start+ เป็นประจำ $limit; และเมื่อเปลี่ยนหน้าไปข้างหน้า $start แล้วลบ $limit เป็นประจำ: $start-$limit;
ด้วยแนวคิดข้างต้น คุณสามารถเริ่มออกแบบโปรแกรม page.php:
<?
//กำหนดหมายเลขที่แสดงบนหน้าปัจจุบัน (หมายเลขนี้สามารถตั้งค่าได้ตามใจชอบ)
$limit=20;
//เริ่มต้นการค้นหาฐานข้อมูล
ถ้า (!empty($start)) $start=0;
mysql_connect("localhost", "");
mysql_select_db(database);
//กำหนดจำนวนบันทึกฐานข้อมูลทั้งหมด
$result=mysql_query("เลือก * จากตาราง");
$num_max=mysql_numrows($result);
$result=mysql_query("select * from table order by id desc Limit $start,$limit);
$num=mysql_numrows($result);
echo
"<table><tr><td>ฟังก์ชันการเปลี่ยนหน้า</td></tr>";
สำหรับ ($i=0;$i<$num;$i++) {
$val=mysql_result($result,$i,"val");
$val1=mysql_result($ผล,$i,"val1");
เสียงสะท้อน "<tr><td>$val</td><td>$val1</td></tr>";
-
}
echo "<tr><td>";
//ตั้งค่าการข้ามหน้าไปข้างหน้า
$prve=$start-$จำกัด;
ถ้า ($prve>=0) {
เสียงก้อง "<a href=page.php?start=$prve>prve</a>";
}
//ตั้งค่าการข้ามไปยังหน้าย้อนกลับ
$ต่อไป=$เริ่มต้น+$จำกัด;
ถ้า ($ถัดไป<$num_max) {
echo "<a href=page.php?start=$next>ถัดไป</a>";
}
เสียงก้อง "</td></tr></table>";
?>
โปรแกรมที่มีฟังก์ชันการพลิกหน้าและย้อนกลับเสร็จสมบูรณ์แล้ว อย่างไรก็ตาม ฟังก์ชันนี้จะยุ่งยากมากเมื่อประมวลผลข้อมูลที่จะแสดงมากขึ้น ต่อไปนี้จะแนะนำฟังก์ชันการพลิกหน้าที่มีประสิทธิภาพและซับซ้อนมากขึ้น - การวนซ้ำหน้า มักเรียกสิ่งนี้ว่าเพราะฉันไม่สามารถหาชื่อที่เหมาะสมกว่านี้ได้):)
มีการแนะนำฟังก์ชันการเปลี่ยนหน้าอย่างง่ายก่อนหน้านี้ เว็บไซต์ บทความนี้ใช้ฟังก์ชันการเปลี่ยนหน้าแบบวนซ้ำ
การหมุนหน้าแบบวนทำได้โดยการหมุนไปข้างหน้าและข้างหลังพร้อมกับตัวเลข นิพจน์เฉพาะคือ:
หน้า: prve <<1 2 3 4 ....... 20 >>
ตัวเลขในถัดไปแสดงถึงแต่ละหน้าปัจจุบัน และการพลิกกลับไม่ได้เป็นเพียงการพลิกไปข้างหน้าและข้างหลังของหน้าปัจจุบันอีกต่อไป แต่เป็นการพลิกหน้าและหลังที่ควบคุมด้วยระบบดิจิทัลที่ซับซ้อนมากขึ้น
เช่นเคย ก่อนที่จะดำเนินการออกแบบโปรแกรมต่อไป โปรดชี้แจงแนวคิดของคุณก่อน ฉันขอแนะนำให้ผู้อ่านอ่านวิธีการหลังจากตระหนักรู้แล้ว ฟังก์ชั่นการเปลี่ยนหน้าเป็นวงคุณสามารถฝึกฝนได้ด้วยตัวเองเพราะวิธีการและแนวคิดบางอย่างที่ศึกษาที่นี่อาจค่อนข้างเป็นนามธรรม
อันดับแรกเรากล้าสันนิษฐานว่ามีมากกว่า 1,000 บันทึกในฐานข้อมูล ที่แสดงอยู่ในปัจจุบันและตัวเลข ตัวควบคุมการพลิกคือ 20 ดังนั้นจึงมีผลการแสดงผลดังต่อไปนี้:
หน้า: 0 1 2 3 ......... 19 >>
ผลลัพธ์การแสดงผลถัดไปหลังจากการพลิก:
หน้า: prve <<20 27 28 ... .... 49 >> nextเอาล่ะ
มาดูกฎกันดีกว่า หมายเลขที่แสดงคงที่คือ 25 และหมายเลขคงที่จะควบคุมการเพิ่มเป็นสองเท่าของ 20 เราสามารถใช้ตัวเลขสองตัวนี้ในการพลิกหน้า ฟังก์ชั่น
แรกตั้งค่าตัวแปรที่แสดงคงที่:
$จำกัด=20;
การตั้งค่าตัวแปรเริ่มต้นของฐานข้อมูล:
$เริ่มต้น=0;
จำนวนบันทึกฐานข้อมูลทั้งหมดคือ: $num;
ตัวแปรหมายเลขหน้า: $page;
โปรแกรมสำหรับแสดงลูปหมายเลขหน้าเป็นดังนี้:
<?
-
$result=mysql_query("เลือก * จากตาราง");
$num=mysql_numrows($ผลลัพธ์);
สำหรับ ($page=0;$page<($num/$limit);$page++) {
สะท้อน $ หน้า;
ถ้า ($หน้า>0 && ($หน้า%20)==0) {
แตก; //ออกจากวง
-
-
?>
ยกเว้นการแสดงตัวเลข โค้ดนี้ไม่ได้ใช้ฟังก์ชันอื่นใด เนื่องจากมีตัวเลขมากกว่าที่จะควบคุมการพลิก จึงต้องมีการใช้ตัวแปรหลายตัวเพื่อทำเครื่องหมายและระบุปริมาณการควบคุมเหล่านี้ ใช้ในการควบคุมการควบคุมการเปลี่ยนหน้าดิจิทัล ตอนนี้คุณสามารถดูรหัสที่สมบูรณ์ page.php ที่ใช้วงจรการเปลี่ยนหน้า:
<?
$จำกัด=25;
ถ้า (!ว่าง($เริ่มต้น)) $start=0;
ถ้า (!empty($s)) $s=0;
mysql_connect("localhost", "");
mysql_select_db(ฐานข้อมูล);
//จำนวนบันทึกฐานข้อมูลทั้งหมดทางสถิติ
$result=mysql_query("เลือก * จากตาราง");
$num=mysql_numrows($result);
$result=mysql_query("select * from table order by idจำกัด $start,$limit");
$numb=mysql_numrows($ผลลัพธ์);
เสียงสะท้อน "<ตาราง>";
ถ้า (!ว่าง($มึน)) {
สำหรับ($i=0;$i<$numb;$i++) {
$val=mysql_result($result,$i,"val");
$val1=mysql_result($ผล,$i,"val1");
เสียงสะท้อน "<tr><td>$val</td><td>$val1</td></tr>";
-
-
echo "</table>";
//ควบคุมการเปลี่ยนหน้าดิจิทัล
เสียงสะท้อน "<ตาราง>";
echo "<tr><td>หน้า:</td>";
//พลิกไปข้างหน้าควบคุม
ถ้า ($s>20) {
ถ้า ($s==21) {
$st=$s-21;
} อื่น {
$st=$s-20;
-
$pstart=$st*$จำกัด;
echo "<td><a href=page.php?";
echo "start=$pstart&s=$st>prve</a></td>";
-
echo "<td> >></td>";
//กำหนดจำนวนหน้าที่สอดคล้องกับหน้าปัจจุบันโดยไม่มีฟังก์ชันลิงก์
$star=$start;
//ให้ความสนใจกับค่าเริ่มต้นของลูปและคิดให้รอบคอบว่าทำไมจึงไม่เป็น 0
สำหรับ ($page=$s;$page<($num/$limit);$page++) {
$start=$page*$limit;
echo "<td>";
if($page!=$star/$limit) {
เสียงก้อง "<a href=page.php?";
เสียงสะท้อน "start=$start&s=$s>";
}
echo $page;
if($page!=$star/$limit) {
เสียงสะท้อน "</a>";
}
echo "</td>";
//ควบคุมฟังก์ชันแสดงขีดจำกัดหน้าดิจิทัล ควบคุมให้แสดงเพียง 20 หน้า
ถ้า ($หน้า>0 && ($หน้า%20)==0) {
ถ้า ($s==0) {
$s=$s+21;
} อื่น {
$s=$s+20;
}
$start=$start+$limit;
if ((($num/$limit)-1)>$page) {
echo "<td> <</td><td><a href'page.php?";
echo "start=$start&s=$s>ถัดไป</a></td>";
-
//ให้ความสนใจกับการควบคุมการกระโดดออกจากวง
หยุดพัก;
-
-
เสียงสะท้อน "</tr></table>";
?>
โปรแกรมข้างต้นสามารถทำหน้าที่เปลี่ยนหน้าแบบวนซ้ำได้อย่างมีประสิทธิภาพ
นอกจากนี้ยังมีฟังก์ชั่นเปลี่ยนหน้าซึ่งก็คือการเพิ่มการส่งข้อมูลในแบบฟอร์มการส่ง จากนั้นโปรแกรมจะข้ามไปยังหน้าที่เกี่ยวข้อง มันค่อนข้างง่ายที่จะนำไปใช้ มันง่าย ฉันจะปล่อยให้ผู้อ่านดำเนินการเองและฉันจะไม่แนะนำที่นี่...