简体   繁体   English

如何使用PHP在线显示用户?

[英]How to show users online in PHP?

This code only shows "1 User(s) Online" no matter how many are online. 无论有多少在线用户,此代码仅显示“ 1个在线用户”。 How do I fix that? 我该如何解决?

<?php
$con = mysqli_connect($host, $username, $password , $database)
or die('Error connecting to MySQL server.'); 
$online = "1";
$query = "SELECT * FROM `users` WHERE online = '$online'";
$data = mysqli_query($con, $query);
$row = mysqli_fetch_array($data);
$online=$row['online'];
echo '<div id="online-me" class="mydiv3"><center><span id="stats">'.$online.' User(s) Online!</span> </center></div>';
?>

So with 所以用

$query = "SELECT * FROM `users` WHERE online = '$online'";

You are getting the row where online = 1 . 您将获得online = 1的行。 Then you set $online=$row['online']; 然后设置$online=$row['online']; which just sets $online to 1 no matter what. 无论如何,它只会将$online设置$online 1

That should give you an idea of how to fix it. 那应该使您知道如何解决它。 Cheers! 干杯! Good luck! 祝好运!

use the count() of MySql also use mysqli_fetch_assoc instead of mysqli_fetch_array 使用MySql的count()还使用mysqli_fetch_assoc代替mysqli_fetch_array

something like this 像这样的东西

<?php
$con = mysqli_connect($host, $username, $password , $database)
or die('Error connecting to MySQL server.'); 
$online = "1";
$query = "SELECT count(id) as 'total' FROM `users` WHERE online = '$online'";
$data = mysqli_query($con, $query);
$row = mysqli_fetch_assoc($data);
$online=$row['total'];
echo '<div id="online-me" class="mydiv3"><center><span id="stats">'.$online.' User(s) Online!</span> </center></div>';
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM