2016-06-30 3 views
1

このコードでは、オンラインの人の数にかかわらず、「1人のユーザーのオンライン」のみが表示されます。どうすれば修正できますか?PHPでオンラインでユーザーを表示するには?

<?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>'; 
?> 
+3

使用 'SELECT COUNT(*)のようにmysqli_fetch_assocの代わりmysqli_fetch_arrayを使用したMySql の数を()を使用し...' – Jens

+2

** WARNING **:ときmysqliを使って[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/ manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **正しくエスケープするのを忘れた場合、重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成するため、手動エスケープと文字列補間または連結を使用しないでください。 – tadman

答えて

1

何かこの

<?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>'; 
?> 
+1

ありがとう:) –

1

ので

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

であなたがonline = 1行を取得しています。次に$online1に設定した$online=$row['online'];を設定します。

これを修正する方法を教えてください。 乾杯!がんばろう!

+0

それは私にアイデアを与えましたが、私はそれを修正することができませんでした。しかし、ありがとう:) –

+0

@ OmarAl-Aliねえ、あなたのDB構造についての詳細を私に教えてくれたら助けてくれるかもしれません – FelisPhasma

+0

これは質問への答えを提供しません。十分な[評判](http://stackoverflow.com/help/whats-reputation)があれば、[任意の投稿にコメントする]ことができます(http://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの説明を必要としない回答を提供する](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](レビュー/低品質の投稿/ 12867724) – Uzbekjon

関連する問題