บทความในตอนที่แล้ว ผมก็ได้กล่าวถึงตัวอย่างของ การทำตัวนับ โดยอ่านข้อมูลจาก Text File ไปแล้วน่ะครับ สำหรับตอนนี้ ก็จะเป็นเรื่องของการจัดทำสถิติ หรือ ตัวนับ (Counter) โดยผ่านไฟล์ฐานข้อมูลด้วย Microsoft Access อันที่จริงมันก็เหมือนกับการนำเอาหัวข้อเรื่อง การเชื่อมต่อฐานข้อมูลโดยไม่ผ่าน ODBC นั่นเองแหละครับผม เพื่อเอามาใช้งาน (เพราะการทำงานผ่าน ODBC - Open DataBase Connective มันจะทำงานได้ช้า และ อีกอย่างมันจัดอยู่ในประเภทเทคโนโลยีที่เก่าแก่ไปแล้วด้วย สำหรับในปัจจุบันนี้ผู้พัฒนาโปรแกรมโดยส่วนใหญ่ จะหันมาพัฒนางานฐานข้อมูลทางด้าน ADO หรือ ActiveX Data Object กันเสียมากกว่าครับ) มาดูขั้นตอนการเขียน Script ขึ้นมาใช้งานกันเลย.
ก่อนอื่นต้องทำการสร้างฐานข้อมูลจากโปรแกรม Microsoft Access เสียก่อนน่ะครับ โดยตามตัวอย่างนี้ จะประกอบด้วยฟิลด์ข้อมูลดังต่อไปนี้ คือ
- Item
เอาไว้สำหรับกำหนดเป็นลำดับที่ เพื่อไว้ให้อ้างอิงถึง (กำหนดเป็น AutoNumber) หรือ เจตนาของผมต้องการใช้ไฟล์นี้ เพียงไฟล์เดียว เพื่อให้อ่านจำนวนของการเข้าเยี่ยมชม ในทุกๆหน้าเว็ปเพจของผมเอง
- ItemName
(Text ขนาด 100 ตัวอักษร ก็น่าจะเพียงพอ) เอาไว้สำหรับกำหนดชื่อหัวข้อเรื่อง และ
- Count
(Long Integer) เอาไว้สำหรับนับจำนวนการเยี่ยมชม

<%
Dim Conn, RS, SQL, VisitorNumber
On Error Resume Next ' ไม่สนใจข้อผิดพลาดใดๆ
Set Conn=Server.CreateObject("ADODB.Connection") ' กำหนดการเปิดฐานข้อมูล Access ในตัวอย่างนี้มีชื่อไฟล์เป็น Counter.MDB
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ = " & Server.MapPath("Counter.mdb")
' ให้เลือกรายการ Item ที่ 1 เพราะว่าเราต้องการบันทึกค่าการนับของหน้าแรก อ้อ!ชื่อตารางของผมคือ tblCount น่ะขอรับ
SQL = "Select * From tblCount WHERE Item = 1" Set RS = Server.CreateObject("ADODB.Recordset")
' ---- CursorType = adOpenKeyset หรือ 1 ' ---- LockType = adLockOptimistic หรือ 3
RS.Open SQL, Conn, 1, 3
' เพิ่มค่าของการนับไปอีกหนึ่งครับผม Rs.Fields("Count").Value = Rs.Fields("Count").Value + 1
' เก็บค่าเอาไว้ในตัวแปรสักตัวก่อน จากนั้นค่อยนำไปแสดงผลทีหลัง VisitorNumber = RS.Fields("Count").Value
' แล้วก็ต้องบันทึกข้อมูลเอาไว้ด้วยล่ะ อย่าลืม Rs.Update
' เสร็จสิ้นกระบวนการแล้วก็ต้องปิดการเชื่อมต่อฐานข้อมูลให้เรียบร้อยซะ ก็เป็นอันจบพิธี RS.Close Conn.Close Set RS = Nothing Set Conn = Nothing %>
' การนำเอาไปใช้งาน ก็เพียงแต่นำเอา Script ที่อยู่ด้านล่างนี้ ไปวางไว้ในตำแหน่งที่เราต้องการ ก็เป็นอันเสร็จสิ้นพิธีการแล้วครับ. (เข้ามาอ่านหน้านี้แล้วเป็นครั้งที่: <% = VisitorNumBer %>)
แต่ทว่าบทความของผมทั้งที่ใช้งานร่วมกับ Text File หรือ Access DataBase ก็ดี มันยังมีปัญหาอยู่เรื่องหนึ่งก็คือว่า หากคุณกดปุ่ม Refresh แล้ว เมื่อไรก็ตามที มันจะต้องเกิดการนับค่าเพิ่มขึ้นใหม่ไปอีก ซึ่งเรื่องนี้อาจจะไม่ค่อยถูกหลักการสักเท่าไหร่ หากว่าเราต้องการให้จำนวนการเปิดหน้าเว็ปเพจ เพื่อแสดงผลตัวเลขเป็นจำนวนเยอะๆแล้ว ก็เพียงแต่คอยมากดปุ่มรีเฟรชอยู่ตลอด (แบบว่าหลอกตัวเองเล่นๆว่ามีคนมาดูเยอะ - 55555) เราสามารถแก้ไขในเรื่องนี้ได้ด้วยการนำเอาคำสั่ง Session เข้ามาใช้งาน ซึ่งผมคงต้องยกยอดเอาไว้ในรอบหน้า และจะได้นำเอาตัวอย่างมาให้ท่านๆได้ดูกันต่อไป
|