私はクライアントの詳細を持つmysqlデータベースを持っています。毎時の訪問、ページビューを配列に表示したいのです。私は以下のmysqlクエリを与えた。mysqlから時間データを取得するには?
<?php
$siteid=$_GET["site"];
$DB = mysqli_connect('localhost','username','password','databasename');
$Q = "SELECT time, COUNT(*), pw FROM clientstats WHERE siteid='$siteid' AND time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 26970 SECOND)) GROUP BY HOUR(FROM_UNIXTIME(`time`)) ORDER BY time ASC";
$R = mysqli_query($DB,$Q);
//start loop
//while or foreach
while($row = mysqli_fetch_assoc($R)){
date_default_timezone_set('Asia/Kolkata');
$timestamp = $row['time'];
$timee = date('H', $timestamp);
$times = $row['COUNT(*)']+$row['wh'];
echo ",['$timee', {$row['COUNT(*)']}, $times]\r\n";
}
?>
ここで、26970は真夜中から今までの秒数です。このコードは正常に動作し、この
,['02', 2, 3] ,['02', 1, 2] ,['04', 1, 2] ,['05', 1, 2] ,['06', 2, 3]
この配列構造のような配列である出力[「HOUR」、訪問、PW]が、問題は、これが1,2,3のように連続して各時間の値を示していないということです、4,5,6 ....私は毎時間の値を表示したい。その時間の値がnilの場合、その時間値を['時間'、0、0]として出力したいのですが、上記の出力に2時間目が倍増しています。それを修正する方法。
ご協力ありがとうございます。
このクエリを試しましたが、何も表示されませんでしたか?もっと説明できますか?私の現在の正確なクエリはSELECT時間、COUNT(*)、WHERE siteid = '$ siteid'と時間> UNIX_TIMESTAMP(DATE_SUB(NOW)、INTERVAL 26970 SECOND))GROUP BY HOUR(FROM_UNIXTIME( 'time')) ORDER BY時間ASC – PARVINDER