我继承了一个旧系统,php 4.4和MySQL,我们运行我们的帮助台软件,直到明年我都无法升级。 我虽然在努力奋斗。 我需要显示2到1小时前记录的呼叫总数。在数据库中,记录的每个调用的unix时间戳都在“logdatex”列中 在我的PHP我有以下
$OneHourAgo = strtotime('-1 hour'); //time 1 hour ago as Unix Timestamp
$TwoHoursAgo = strtotime('-400 hour'); // time 2 hours ago
$Test = mysql_query("select count(*) from opencall where logdatex between $OneHourAgo and $TwoHoursAgo") or die(mysql_error());
现在,在MySQL查询浏览器中,如果我放入查询但是用实际数字替换变量(我做了一个回声来得到数字)它工作正常并返回所需的数字:
从opencall中选择count(*),其中logdatex在1326767703和之间 1386764103
(以上不使用1小时样本,更像是几年)请你帮我把数字输入变量,我无法弄清楚如何做到这一点。 任何帮助表示赞赏
答案 0 :(得分:2)
mysql_query
不会直接返回查询结果。而是返回结果资源。 http://www.php.net/manual/en/function.mysql-query.php
因此,您需要使用mysql_fetch_row
来获得结果。
http://www.php.net/manual/en/function.mysql-fetch-row.php
$row = mysql_fetch_row($Test);
$count = $row[0];
如果您有多行,则循环直到mysql_fetch_row返回false。但既然你知道你只会得到一排,你就可以做到这一点。
答案 1 :(得分:1)
您应该更改查询:
select count(*) from opencall where logdatex between $TwoHoursAgo and $OneHourAgo
因为http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between说,它应该在最小和最大之间
答案 2 :(得分:0)
我不太了解你,但是,可能是那个?
$OneHourAgo = strtotime('-1 hour'); //time 1 hour ago as Unix Timestamp
$TwoHoursAgo = strtotime('-2 hour'); // time 2 hours ago