การแบ่ง page นั้น สามารถทำได้หลายวิธีครับ เช่นการแสดงหมายเลข แสดงปุ่ม next,previous และการแสดง page ปัจจุบัน อย่ามัวรีรอเลยครับ เรามาดูการแบ่ง page แบบง่ายๆกันดีกว่าครับ
เพื่อให้เข้าใจง่ายเราจะมีการแบ่งเป็นสองส่วนคือ
1. การแบ่งหนัา page เช่น 1,2,3,4,...,100
2. การทำปุ่ม Next,Previous
มาเริ่มกันเลยครับผมมม...
<?
$pagesize = 3; //จำนวน record ที่ต้องการแสดงในหนึ่งหน้า
$start = 0; // ค่าของ record โดย page1 $startต้อง=0, page2 $startต้อง=3,page3 $startต้อง=6
if (isset($page)){
$start = $pagesize*($page - 1); //นี้เป็นสูตรการคำนวนครับ
}
else{
$page = 0;
$start = 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$sql = "SELECT * //เลือกข้อมูลที่ต้องการนำมาแสดงครับ
FROM newspaper
WHERE status LIKE '%online%'
";
$result = mysql_query($sql); //เก็บข้อมูลไว้ใน $result
$num_rowsx = mysql_num_rows($result); //ใช้คำสั่ง mysql_num_rows เพื่อหาจำนวน record ทั้งหมด
$totalpage = ceil($num_rowsx/$pagesize);
//หาค่า page ทั้งหมดว่ามีกี่ page โดยการนำ record ทั้งหมดมาหารกับจำนวน record ที่แสดงต่อหนึ่งหน้า //แต่อาจได้ค่าทศนิยม เราจึงใช้คำสั่ง ceil เพื่อปัดค่าขึ้นเป็นจำนวนเต็มครับ
///////////////////////////////////////select sql ครั้งที่สอง เพื่อกำหนด ว่าจะแสดงกี่ record ต่อ 1 page////////////////////////
$sql = "SELECT *
FROM newspaper
WHERE status LIKE '%online%'
ORDER BY news_date DESC
LIMIT $start,$pagesize";//คำสั่งแสดง record ต่อหนึ่งหน้า $pagesize = ต้องการกี่ record ต่อ
//หนึ่งหน้า $start= เริ่มจาก record ที่เท่าไหร่
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
?>
<? while($row = mysql_fetch_array($result)){
//วนลูป record มาเก็บค่าไว้เพื่่อเรียกใช้งานครับ
$news_header=$row[news_header];
?>
//เช่นผมอยากแสดง news_header ก็ใช้
<?php echo $row['news_header']; ?> //ก็จะแสดง news_header ของทุก record จนหมด
<?
} //end while
?>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1. การแบ่งหนัา page เช่น 1,2,3,4,...,100
<?
$page = 0; //กำหนดค่าตัวแปรเท่ากับ 0
for($i=1;$i<=$totalpage;$i++){
//ใช้ for loop แสดงค่า page โดยมีสูตรคำนวน $totalpage บรรทัดบน
$page++;
?>
<a href="news.php?page=<?php echo "$page";?>"><? echo "$page"; ?></a>
//สร้างลิ้งค์เพื่อส่งค่า pageที่ถูกวนลูบ ออกมาแสดงครับ เพื่อให้เรากดเลือก page ได้ ตรงนี้จะได้ส่วนของการแบ่งหนัา page เช่น 1,2,3,4,...,100 เสร็จแล้วครับ
<?
}
?>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2. การทำปุ่ม Next,Previous
<?
$page = $_GET['page']; //ตรวจสอบค่า page
echo "Page : $page<br />"; // แสดงหน้าปัจจุบัน
?>
<?
if($page > 1) //ถ้า ค่า page มากกว่า 1 แสดงปุ่ม ย้อนกลับ Previuos
{
$pg = $page -1;
echo "<a href='news.php?page=$pg'>Previuos</a>"; //ส่งค่า page ที่ลดลง 1 เมื่อกดปุ่ม next
}
?>
<bb><bb>
<?
//next
if ($page < $totalpage) //ถ้า ค่า page น้อยกว่า page ทั้งหมด(page ท้ายสุด) แสดงปุ่ม Next
{
$pg = $page+1;
echo "<a href='news.php?page=$pg'>Next</a>";//ส่งค่า page ที่เพิ่มขึ้น 1 เมื่อกดปุ่ม next
}
?> // ค่า page อยุ๋กลางๆ ก็จะแสดงทั้งสองปุ่ม Next และ previous
0 Comments
แสดงความคิดเห็น