
ติดต่อเรา
webmaster_dwthai @yahoo.com
webmaster@dwthai.com
08-9495-7296
|
การแบ่งหน้าแสดงผลข้อมูลดูรู้สึกว่า..จะเป็นปัญหาสำหรับผู้ที่เขียน
Web Application มือใหม่ทั้งหลาย เนื่องจากว่า.. ต้องอาศัยแนวคิด และการคำนวนอยู่พอสมควรเลยทีเดียว
ผมเองในการเริ่มฝึกเขียนใหม่ ๆ ก็งมโข่งอยู่หลายวันเหมือนกันกับเรื่องตรงนี้
ในบทความนี้จึงนำเอามาให้ท่านลองศึกษากันดูครับ
การตัดหน้าข้อมูลแสดงผล
<%
Set conn=Server.CreateObject("ADODB.Connection") 'ทำการสร้าง
Obj Connection
conn.open="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.Mappath("data_test.mdb")
Sql="Select * From name_data" ' ทำการ
Select ข้อมูลจาก Table ที่ต้องการ
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open Sql,conn,1,1
' โปรแกรมในการแบ่งหน้าข้อมูล
all_data=rs.RecordCount 'นับจำนวนข้อมูลทั้งหมดที่อยู่ใน
table
IF all_data=0 Then
Response.Write "ยังไม่มีข้อมูล"
Else
page=Request("page")
' ทำการรับค่าจาก URL ซึ่งจะส่งมาเพื่อบอกว่าว่าผู้ใช้กำลังเรียกชมหน้าที่เท่าไหร่ของข้อมูล
ส่งมาในแบบ GET ค่าคีย์คือ page
pre_page=10 'จำนวนข้อมูลที่ต้องการต่อ 1 เพจ
IF page="" Then 'หากยังไม่มีการส่งค่าการเรียกชมหน้ามาให้กำหนดว่า
Default คือ หน้าข้อมูลที่ 1
page=1
Else
page=Int(page) ' ทำการแปลงค่าที่ได้รับให้อยู่ในรูปแบบของตัวเลขเพื่อใช้ในการคำนวนต่อไป
End IF
totalpage=all_data\pre_page
'ทำการหาค่าเพจทั้งหมดของมูล เช่น ข้อมูลทั้งหมดมี 10 rec แต่เราต้องการแบ่งการแสดงผลออกเป็นหน้าละ
5 rec เราก็จะได้ตัวแปร totlapage เท่ากับ 2 เป็นต้น
IF (all_data mod pre_page) <>"0" Then
' หากเป็นการหารที่ไม่ลงตัว เราต้องทำการ MOD เพื่อคำนวนหา
เศษของหน้าที่เหลืออีก หากยังเหลือเศษให้ทำการบวก 1 เข้ากับตัวแปร totalpage
totalpage=totalpage+1
End IF
rs.Move pre_page*(page-1) 'ทำการเลื่อน Record ไปตามจำนวนที่ทำการคำนวนได้
IF page<> totalpage Then
endrecord=pre_page
Else
IF (all_data mod pre_page)=0 Then
endrecord=pre_page
Else
endrecord=(all_data mod pre_page)
End IF
End IF
End IF
' จบการคำนวนเพื่อการแบ่งหน้าแสดงข้อมูล
For list=1 To endrecord ' ทำการวนรอบเพื่อการแสดงผลข้อมูล
Response.write rs("Name")&"<br>"
rs.MoveNext
Next
rs.close : Set rs=Nothing
conn.close : Set conn=Nothing
For p=1 To totalpage 'สร้าง Link สำหรับการ Click
เลือกหน้าแสดงข้อมูล
Response.write "<a href="&Request.ServerVariables("URL")&"?page="&p&">หน้าที่"&p&"</a>
"
Next
%>
|