我使用radipanel为我的网站创建了一个工作人员面板,但是我的思绪已经空白了我已将其编码为显示当前在线用户,但我完全忘记了如何在线显示用户数量。
下面是我必须在线显示用户名称的代码;
<?php
$query = $db->query( "SELECT DISTINCT user_id FROM sessions WHERE user_id != '0'" );
$i = 1;
while( $array = $db->assoc( $query ) ) {
$queryU = $db->query( "SELECT * FROM users WHERE id = '{$array['user_id']}'" );
$arrayU = $db->assoc( $queryU );
$queryUG = $db->query( "SELECT * FROM usergroups WHERE id = '{$arrayU['displaygroup']}'" );
$arrayUG = $db->assoc( $queryUG );
echo "<a href=\"core.profile?u={$arrayU['username']}\" style=\"color: #{$arrayUG['colour']}; font-weight: bold;\">";
echo $arrayU['username'];
$coverstatus2 = $arrayU['cover'];
if($coverstatus2 == 1) {
echo " <b style=\"color:#89c35c;\">+</b>";
}elseif($coverstatus2 == 2) {
echo " <b style=\"color:#c24641;\">-</b>";
}elseif($coverstatus2 == 0) {
echo "";
}
echo "</a>";
echo ( $i == $db->num( $query ) ) ? '' : ' ';
$i++;
}
?>
但我如何显示数字?
例如我想要的是
在线用户(此处为号码) 乔希,汤姆,马克
所以它会说用户在线(3)
那么显示数字的代码是什么?
谢谢, 约什
答案 0 :(得分:0)
在while()语句上放置一个int ++计数器,这样每次迭代都会计算用户。或者在不打印名称的情况下使用count()方法或类似方法。
答案 1 :(得分:0)
我认为这对你有用。 按照步骤进行操作。
2.每当用户在服务器上执行某些活动(如刷新页面等)时,每次都会使用time()方法更新last_activity列。
现在根据60个secoonds对你的时间进行查询。
$ query =“select * from user_table where last_activity&gt;(time() - 60) ;“
此查询会返回在线用户的数量及其数据。
希望对你有所帮助。
答案 2 :(得分:0)
您可以在用户的表格中添加名为“isonline”的行。
$onlineppl=mysql_num_rows(mysql_query("SELECT * FROM users WHERE isonline='1'");
mysql_num_rows
可以帮助您使用select计算行数。
用户注销时只需要在db。
上更新isonline='0'
我希望能帮助一下。
答案 3 :(得分:0)
据我所知,您可以从代码中获取所有当前会话的数组,然后使用while语句迭代来回显每个用户。在你的i = 1之后;在你的while语句之前
$array = $db->assoc( $query );
$count = count($array);
然后你可以在页面上回显$ count 然后
while ($array) {
// Your other code
}