|
 |
|
ต้องการแบ่งหน้า webboard ครับช่วยแนะนำหน่อยครับ อยากให้ webboard มันแบ่งเป็นหน้าๆครับ ช่วยแนะนำ code ที่น่ะครับ |
|
 |
|
|
 |
 |
|
เอาตัวอย่างไปปะยุกต์เอานะครับ
Code (PHP)
สิ่งแรกที่ต้องทำก็คือ คุณต้องมีฐานข้อมูลเก็บกระทู้ของเวปบอร์ดของคุณก่อน เราจะไม่พูดถึงว่ามีฟิลด์ใดในตารางบ้าง สิ่งที่ต้องการก็คือ จำนวนกระทู้ทั้งหมดที่มีในตารางของเวปบอร์ด หาได้โดยใช้คำสั่งนี้
โค๊ด:
<?
$sql = "select * from table_name";
$rs = mysql_query($sql);
$totalrow = mysql_num_rows($rs); // ได้ตัวแปรเก็บจำนวนกระทู้ทั้งหมดแล้ว
?>
ต่อไปจะเป็นการแบ่งหน้า ในที่นี้คุณจำเป็นต้องทำค่า GET ใน url ของลิงค์คุณด้วย ยกเว้นหน้าแรก โดยให้ตัวแปรชื่อ $page ซึ่งจะเป็นค่าที่บอกว่าแสดงหน้าที่เท่าไร ใน url คุณจะต้องต่อท้ายเป็นดังนี้
http://www.domain.com/webboard/view.php?page=2
เป็นต้น ค่า GET ของ page=2 หมายความว่า ให้แสดงหน้าที่ 2
สคริปต์ต่อไปนี้ เป็นการหาค่าเพื่อแบ่งหน้าให้ถูกต้องในแต่ละหน้า
โค๊ด:
<?
$pagesize = 20; // แสดงจำนวนกระทู้ในแต่ละหน้า ในที่นี้จะแสดง 20 กระทู้
$totalpage = (int)($totalrow/$pagesize); // หาจำนวนหน้าทั้งหมด
// ถ้าจำนวนหน้าเป็นเศษให้ปัดขึ้นไป
if(($totalrow%$pagesize)!=0){
$totalpage+ = 1;
}
// หา record แรกที่จะแสดงของแต่ละหน้า
if(isset($page)){
$pageno = $page;
$start = $pagesize*($pageno-1);
}else{
$pageno = 1;
$start = 0;
}
?>
การเรียกข้อมูลมาแสดงก็ใช้ภาษา SQL ดังนี้
โค๊ด:
<?
// ตัวแปร $start เป็นค่าที่เริ่มแสดงกระทู้ ส่วนตัวแปร $pagesize ให้แสดงกี่กระทู้
$sql = "select * from table_name limit $start,$pagesize";
?>
ตอนนี้เสร็จขั้นตอนแสดงกระทู้แล้ว ต่อไปจะให้ทำลิงค์เพื่อเลือกหน้าถัดไป หรือย้อนกลับหน้าที่ต้องการ คุณสามารถก็อปปี้สคริปต์ข้างล่างนี้ไปไว้ที่หน้าเวปคุณได้เลย แค่เปลี่ยนชื่อไฟล์เท่านั้น
โค๊ด:
<?
if($pageno >1){
echo " <a href='view.php?page=",$pageno-1,"'>Previous</a> |";
}
for($i=1;$i<=$totalpage;$i++){
if($pageno==$i){
echo" <b>".$i."</b> |";
}else{
echo " <a href='view.php?page=$i'>$i</a> |";
}
}
if($pageno<$totalpage){
echo " <a href='view.php?page=",$pageno+1,"'>Next</a>";
}
?>
|
 |
 |
 |
 |
Date :
2010-03-12 14:49:19 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|

|
Load balance : Server 05
|