1.สร้างตารางในฐานข้อมูล
1 2 3 4 5 6 7 | 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; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?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
1 2 3 4 5 6 7 8 | <style type= "text/css" > div#memberOnlineShow{ width : 120px ; border : 1px solid #99FFCC ; color : #3366CC ; text-align : center ; } </style> |
HTML code
1 2 3 | < div id = "memberOnlineShow" > </ div > |
Javascript Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <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 (สำหรับทดสอบ)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | < 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 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 > |