0
jquery(startdateとenddate)のdatepicker関数を使用して、mysqlデータベースを照会するユーザ&から日付を取得しました。テーブルが完全に表示されていません
ユーザーがたとえばstartdateと入力すると、 8月25日と8月26日の終わりに、テーブルは24行(25thの混合)を出力します。実際には48行が時間単位になります。直し方 ?
<script>
$(function(){
$("#startdate").datepicker({dateFormat: 'yymmdd'});
});
$(function(){
$("#enddate").datepicker({dateFormat: 'yymmdd'});
});
</script>
<?php
$connect = new mysqli("x.x.x.x","acacacac","acacacac","acacacac");
$startdate=$_POST['startdate'];
$enddate=$_POST['enddate'];
$ingress=$_POST['ingress'];
$sql="SELECT
DATE_FORMAT(ingress_call_info_inviting_ts,'%Y-%m-%d %H') AS Hourly,
ingress_call_info_zone_name as Ingress,
Count(cat.id) AS Attempts
FROM asas
WHERE
ingress_call_info_inviting_ts BETWEEN '$startdate' AND '$enddate' AND
ingress_call_info_zone_name LIKE '$ingress'
GROUP BY TIME_FORMAT(ingress_call_info_inviting_ts,'%H:00')
ORDER BY TIME_FORMAT(ingress_call_info_inviting_ts,'%H:00')";
$records=$connect->query($sql);
?>
<?php
while ($report=$records->fetch_assoc()) {
echo "<tr>";
?><td style="border:1px solid black; text-align: center;>"<?php
echo "<td border='1'>".$report['Hourly']."</td>";
?><td style="border:1px solid black; text-align: center;>"<?php
echo "<td border='1'>".$report['Ingress']."</td>";
?><td style="border:1px solid black; text-align: center;>"<?php
echo "<td border='1'>".$report['Attempts']."</td>";
echo "</tr>";
}
?>
<?php } ?>
あなたは時間フォーマットについて正しいです。私のデータベースの日時の列には「YYMMDDHHmmSSxxxx」があります。私はテーブルの出力を取得していますが、問題はありませんが、日付に2日の違いがある場合、データは2日間(24行固定)からランダムに表示されますが、 (2日間は48時間です)。 – Ayaz
列のデータ型は何ですか? 'DATETIME'か' VARCHAR'ですか? – Barmar
datatypeはdatetimeです。 Navicatのような他のサードパーティ製のソフトウェアで同じクエリを使用しているので、mysqlクエリに問題はないと確信しています。 PHPでやっている間に問題がある。 – Ayaz