我有一个HTML表,它回显来自我的SQL数据库的数据。 我需要的是,只要表中的某个字段在其他地方的数据库中更新,就会在HTML页面上弹出警报。
在我所在的主页上,它显示了我的getTable.php文件中的一个表。
我想要更新的特定列是一个注释列,它会定期从工厂的操作员那里获得输入。
我不确定哪些代码可以帮助理解这种情况,但我正在寻找有关非javascript函数的任何建议,这些函数可以简单地保留一个关于是否正在编辑SQL表的选项卡。
这是单元格的代码,它向我表明存在一个注释:
$conN = mysqli_connect(DB_HOST, DB_USER);
if (!$conN) {die('Could not connect: ' . mysqli_error($conN));} // Check Connection
mysqli_select_db($conN,"jms");
$jid = $row['jobID'];
$opn = $row['operation'];
$highlight = mysqli_query($conN,"SELECT notes FROM operations WHERE jobID=$jid AND operation=$opn");
while ($data = mysqli_fetch_array($highlight))
if (isset($data['notes']) && $data['notes'] != "") {
echo "<td id='notes' style='background-color:red;width:1%;' onChange='alert(\"New note on Job No " .$jid. "\")'><input id='target' type='text' value='" .$data["notes"]. "' >" . "</td>";
} else {
echo "<td style='background-color:palegreen;width:1%;'>" . "</td>";
}
echo "</tr>"; // End the row
$index++;
答案 0 :(得分:0)
这可能比你期望的更复杂。
有几个选项可以实现这一点,它们取决于您对较大系统的控制。最终,使用PHP,您可能需要使用轮询方法。
要使用一个简单的示例,您可以使用JavaScript命中AJAX PHP脚本,并将其POST为当前数据数组。然后,PHP可以检查当前数据,并比较两个数组。这可能效率不高,但它允许您判断字段何时发生变化。
为了使其更加优化,您可以在每一行上存储修改时间。然后,您只需要发送最后的最高修改时间,并使用索引来检查更新的记录。然后,AJAX PHP脚本只有在更新时才会发回数据。您可能仍需要一个数组来判断哪个特定字段已更改,但这可以在客户端完成。
另一种选择是使用TRIGGER(如果您的数据库引擎支持它们),它可以使用更改信息更新单独的表。然后,您可以使用游标通过AJAX轮询发送此信息。
继续沿着这条路走下去,你可以用websocket代替AJAX。如果您需要尽可能实时的信息,这可能会更有效。它最终连接的代码仍然需要进行轮询(除非它是一个长期存在的应用程序,更新也会通过......但如果您正在使用PHP,这是不太可能的。)< / p>
无论如何,无论如何,你需要的成分是: