我在PHP中编程相对较新,所以如果这是一个相当简单的问题,我很抱歉。确定同一个MySQL表中两个值的时间戳的差异
我有一个包含下列值称为MachineReports一个MySQL数据库表:ReportNum(主键,自动增加),机号和时间戳
下面是一些示例数据:
|ReportNum | MachineID | Timestamp |
|1 | AD3203 | 2012-11-18 06:32:28|
|2 | AD3203 | 2012-11-19 04:00:15|
|3 | BC4300 | 2012-11-19 04:00:15|
我是什么试图做的是通过迭代每个行集,找出每个机器ID的时间戳差异,以秒为单位。但是,我陷入了这样做的最佳方式。这里是我到目前为止已经编写的代码:
<?php
include '../dbconnect/dbconnect.php';
$machineID=[];
//Get a list of all MachineIDs in the database
foreach($dbh->query('SELECT DISTINCT(MachineID) FROM MachineReports') as $row) {
array_push($machineID, $row[0]);
}
for($i=0;$i<count($machineID);$i++){
foreach($dbh->query("SELECT MachineID FROM MachineReports WHERE MachineID='$machineID[$i]' ORDER BY MachineID") as $row) {
//code to associate each machineID with two time stamps goes here
}
}
> 此代码只是行列出了表行的内容。 我的最终目标是找出某个MachineID的时间戳差异。我考虑过的一件事是在php中使用多维数组 - 使用$ machineID作为键,然后将时间戳存储在数组中的关键点。
但是,我不知道如何做,因为我的查询逐行解析。
我有很多问题。
1)这是做这件事最有效的方法吗?我怀疑我的数据库表设计可能不是最好的。 2)确定某个机器ID的时间戳差异的最佳方法是什么?
即使只是一个指向一个话题,会促使我以不同的方式思考这个问题将是有益的 - 我不害怕做研究。谢谢!
什么数据库库,你在这里使用?在你的查询字符串中看到裸体变量*不是令人鼓舞的。 – tadman
你每台机器有多少行?它会一直是2行吗? –
根据您的数据样本,您要查找什么输出 – Drew