PHP查询MySQL,显示“count(*)”

时间:2013-12-11 14:49:41

标签: php mysql variables

我继承了一个旧系统,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小时样本,更像是几年)请你帮我把数字输入变量,我无法弄清楚如何做到这一点。 任何帮助表示赞赏

3 个答案:

答案 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

链接:http://php.net/manual/es/function.strtotime.php