私はPHPでのプログラミングに比較的慣れていないので、これがかなり単純な質問である場合は申し訳ありません.
次の値を含む MachineReports という MySQL データベース テーブルがあります: ReportNum (主キー、自動インクリメント)、MachineID、およびタイムスタンプ
以下にデータの例を示します。
|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 のタイムスタンプの違いを見つけることです。私が検討したことの 1 つは、php で多次元配列を使用することです。$machineID をキーとして使用し、キーが指す配列内にタイムスタンプを格納します。
ただし、クエリが行ごとに解析されるため、その方法がわかりません。
いくつか質問があります。
1) これはこれを行うための最も効率的な方法ですか? データベース テーブルの設計が最適ではない可能性があります。2) 特定の machineID のタイムスタンプの違いを判断する最良の方法は何ですか?
これについて別の方法で考えるように促すトピックへのポインタだけでも役立ちます.私は研究をすることを恐れていません. ありがとう!