Php 使用dateDiff检查数据库是否有必要的更新
嘿,飞越者。如果数据库上的所有记录日期都在指定的$min和$max值之间,我写的代码在刷新时检查数据库,我遇到了一些问题。如果没有,则记录将被更新。这就是我到目前为止所做的Php 使用dateDiff检查数据库是否有必要的更新,php,mysql,Php,Mysql,嘿,飞越者。如果数据库上的所有记录日期都在指定的$min和$max值之间,我写的代码在刷新时检查数据库,我遇到了一些问题。如果没有,则记录将被更新。这就是我到目前为止所做的 // check database for necessary updates $update = mysql_query("SELECT * FROM rent"); while($row = mysql_fetch_array( $update )) { $datetime_lower
// check database for necessary updates
$update = mysql_query("SELECT * FROM rent");
while($row = mysql_fetch_array( $update )) {
$datetime_lower = DateTime::createFromFormat('d/m/Y', $min);
$datetime_upper = DateTime::createFromFormat('d/m/Y', $max);
$datetime_compare = DateTime::createFromFormat('d/m/Y g:i a', $row_update['pDate']);
$diff_lower = $datetime_lower->diff($datetime_compare);
$diff_upper = $datetime_upper->diff($datetime_compare);
if ($datetime_lower < $datetime_compare && $datetime_upper > $datetime_compare) {
// date is between min and max, do nothing
} else {
// date is not between min and max, update cell colour
$result = mysql_query("UPDATE rent SET colour='F0F0F0' WHERE $datetime_lower < $pDate && $datetime_upper > $pDate") or die(mysql_error());
}
}
知道怎么回事吗
$row
但使用$row\u update
更新租金集color='f0f0'
将更新所有记录,如果一个元组不在$min和$max之间更新租金设置color='f0f0',其中pDate不在$min和$max之间
我认为您的方法没有经过优化,您可以发出一个查询来直接更新到mysql,而不是比较与
php->mysql->php
的不同,如
update rent set colour='F0F0F0' WHERE pDate>='$min' and pDate<='$max';
update rent set color='f0f0'其中pDate>='$min'和pDate
update rent set colour='F0F0F0' WHERE pDate>='$min' and pDate<='$max';