หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 1 1 4 4 5 5

7 ธันวาคม พ.ศ.2549
448 Users On-Line.
Visitors - Page views
 8 4 0 9 4 4 9
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

การนับจำนวนผู้เข้าชม (Counter) ด้วย Access DataBase

Category »  ASP/ASP.Net
โดย : Webmaster เมื่อ 5/11/2549 12:17:00
(อ่าน : 18704) 

บทความในตอนที่แล้ว ผมก็ได้กล่าวถึงตัวอย่างของ การทำตัวนับ โดยอ่านข้อมูลจาก 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 เข้ามาใช้งาน ซึ่งผมคงต้องยกยอดเอาไว้ในรอบหน้า และจะได้นำเอาตัวอย่างมาให้ท่านๆได้ดูกันต่อไป


จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560