表格细胞呈白色

时间:2010-12-20 19:01:53

标签: php mysql

运行下面的SQL语句(运行正常)我发现数据库中的所有表都是白色的。

知道为什么会这样吗?

        // check database for necessary updates

$update = mysql_query("SELECT * FROM rent WHERE colour='3C0'");

while($row_update = 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']);

if ($datetime_lower < $datetime_compare && $datetime_upper > $datetime_compare) {

    // date is between do nothing

        mysql_close($update);

    } else {

    // date is not between so update

    echo "date is not between";

    $update_result = mysql_query("UPDATE rent SET colour='F0F0F0' WHERE substr(pDate, 0, 10) NOT BETWEEN $min AND $max && colour='3C0'");

    mysql_close($update_result);
}
}

我收到了一些照片。

这就是它的外观(上面代码省略):

http://i51.tinypic.com/143gpef.jpg

目前的情况如下(代码存在):

http://i54.tinypic.com/2lwm4xg.jpg

1 个答案:

答案 0 :(得分:1)

您的while循环似乎会查看表中的所有结果。似乎在循环的每次迭代中,您首先在PHP中检查日期,然后在更新查询中再次检查日期,并将所有匹配的行更新为F0F0F0。

我不知道为什么你的代码将颜色改为白色而不是#F0F0F0,因为你的代码中没有white或fff,所以我所能做的就是建议一些能让你的代码更有效的东西。

如果您的id表中有rent列(自动增量的主键),则可以在您的$update = mysql_query("SELECT * FROM rent WHERE colour='3C0'"); while($row_update = 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']); if ($datetime_lower < $datetime_compare && $datetime_upper > $datetime_compare) { // date is between do nothing mysql_close($update); } else { // date is not between so update echo "date is not between"; $update_result = mysql_query("UPDATE rent SET colour='F0F0F0' WHERE id=" . $row_update['id'] . " && colour='3C0'"); mysql_close($update_result); } } 表中使用此值,而不是更新while循环的每次迭代中的所有行while循环而不是第二次测试日期。

{{1}}