1.สร้างตารางในฐานข้อมูล
CREATE TABLE `memberonline` ( `onlineID` int(11) NOT NULL auto_increment, `onlineMemberID` int(11) NOT NULL, `onlineMemberName` varchar(100) NOT NULL, `onlineTimestamp` int(11) NOT NULL, PRIMARY KEY (`onlineID`) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;2.สร้างไฟล์สำหรับแสดงจำนวนสมาชิกออนไลน์ และ รายชื่อสมาชิก เป็น gmemberonline.php
<?php session_start(); header("Content-type:text/html; charset=UTF-8"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // ส่วนของการติดต่อฐานข้อมูล $link=mysql_connect("localhost","root","test"); mysql_select_db("test"); $memberNameOnline=""; // กำหนดตัวแปรสำหรับเก็บชื่อสมาชิกที่ออนไลน์ $q="SELECT onlineMemberID,onlineMemberName FROM memberonline WHERE 1"; $qr=mysql_query($q); $numMemberOnline=mysql_num_rows($qr); // เก็บจำนวนสมาชิกที่ออนไลน์ while($rs=mysql_fetch_array($qr)){ $memberNameOnline.=$rs['onlineMemberName']."<br>"; // เก็บชื่อสมาชิกที่ออนไลน์ } echo "$numMemberOnline Member Online<br>"; // แสดงจำนวนสมาชิกที่ออนไลน์ echo $memberNameOnline; // แสดงชื่อสมาชิก /* แก้ไขตัวแปร session ในที่นี้ใช้ $_SESSION['ses_memberID'] เก็บ id ของสมาชิก $_SESSION['ses_memberName'] เก็บ ชื่อของสมาชิก ให้แก้ไขตัวแปรตาม ทั้งสองข้างต้นตามต้องการ */ if(isset($_SESSION['ses_memberID']) && $_SESSION['ses_memberID']!=""){ $q="SELECT * FROM memberonline WHERE onlineMemberID='".$_SESSION['ses_memberID']."' "; if(mysql_num_rows(mysql_query($q))<=0){ $q="INSERT INTO `memberonline` ( `onlineID` , `onlineMemberID` , `onlineMemberName` , `onlineTimestamp` ) VALUES ( NULL , '".$_SESSION['ses_memberID']."', '".$_SESSION['ses_memberName']."', '".time()."' );"; mysql_query($q); }else{ mysql_query("DELETE FROM memberonline WHERE unix_timestamp( ) - onlineTimestamp > 60 "); } } ?>
3. แสดงข้อมูลด้วย ajax ใน jQuery ไฟล์ memberonline.php
CSS code
<style type="text/css"> div#memberOnlineShow{ width:120px; border:1px solid #99FFCC; color:#3366CC; text-align:center; } </style>
HTML code
<div id="memberOnlineShow"> </div>
Javascript Code
<script src="http://www.google.com/jsapi" type="text/javascript"></script> <script type="text/javascript"> google.load("jquery", "1.3.2"); </script> <script type="text/javascript"> $(function(){ callMemberOnline(); }); var intV=setInterval("callMemberOnline()",5000); function callMemberOnline(){ var html=$.ajax({ url:"gmemberonline.php", data:"memberID=&memberName=", async: false, success:function(html){ $("div#memberOnlineShow").html(html); }, error:function(){ clearInterval(intV); } }).responseText; } </script>
รวมไฟล์ memberonline.php (สำหรับทดสอบ)
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <style type="text/css"> div#memberOnlineShow{ width:120px; border:1px solid #99FFCC; color:#3366CC; text-align:center; } </style> <div id="memberOnlineShow"> </div> <script src="http://www.google.com/jsapi" type="text/javascript"></script> <script type="text/javascript"> google.load("jquery", "1.3.2"); </script> <script type="text/javascript"> $(function(){ callMemberOnline(); }); var intV=setInterval("callMemberOnline()",5000); function callMemberOnline(){ var html=$.ajax({ url:"gmemberonline.php", data:"memberID=&memberName=", async: false, success:function(html){ $("div#memberOnlineShow").html(html); }, error:function(){ clearInterval(intV); } }).responseText; } </script> </body> </html>