私はチャット アプリケーションを持っています。このアプリケーションでは、オンライン ユーザーをチャットルームに表示したいと考えています。オンライン ユーザーを記録するデータベースがあり、新しいユーザーが来るたびに変化し続けます。ユーザーが離れると、データベースから削除されます。データベースは、ユーザー名と部屋の 2 つの列で構成されます。データベース側は正常に動作します。
onlinelar.php:
<?php
$data = array();
$current = $_GET['current'];
$room = $_GET['room'];
$getRoomUsers = mysql_query("SELECT * FROM `chat_users_rooms` WHERE `room` = '".$room."'");
if(mysql_num_rows($getRoomUsers) != $current)
{
$data['numOfUsers'] = mysql_num_rows($getRoomUsers);
}
else
{
$data['numOfUsers'] = $current;
}
echo json_encode($data);
?>
online.js:
var numOfUsers = 0;
var room;
function chat(room2)
{
room = room2;
}
$.ajaxSetup({
cache: false
});
function getuserlist() {
$.ajax({
type: "GET",
url: "onlinelar.php",
data: {
'room': room,
'current' : numOfUsers
},
dataType: "json",
cache: false,
success: function(data) {
if (numOfUsers != data.numOfUsers) {
numOfUsers = data.numOfUsers;
$('#bu').html($("<strong id='bu'>"+ numOfUsers + "</strong>"));
}
setTimeout(getuserlist(),1);
},
});
}
そして最後に、index.html の初期化子:
- - なにか
<script type="text/javascript">
var chat = new Chat(<?php echo $room;?>);
chat.getuserlist();
</script>
<strong id="bu">
<?php
echo $numOfUsers;
?>
</strong>
- - - なにか
ここでは、データベースの状況(特定の部屋の行)を確認し、その部屋のチャット数を同時に変更したいと考えています。「現在」はユーザー数、「部屋」は部屋の名前ですが、データベースの行数が変わっても変化はありません。どの部分が欠けていますか? 注: index.php に online.js を追加しました