我对 PHP 编程比较陌生,所以如果这是一个相当简单的问题,我深表歉意。
我有一个名为 MachineReports 的 MySQL 数据库表,其中包含以下值:ReportNum(primary key, auto increment)、MachineID 和 Timestamp
以下是一些示例数据:
|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的时间戳差异的最佳方法是什么?
即使只是指向一个可以促使我以不同方式思考这个问题的话题也会有所帮助——我不害怕做研究。谢谢!