Php 使用dateDiff检查数据库是否有必要的更新

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

嘿,飞越者。如果数据库上的所有记录日期都在指定的$min和$max值之间,我写的代码在刷新时检查数据库,我遇到了一些问题。如果没有,则记录将被更新。这就是我到目前为止所做的

// 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';