2010-12-20 87 views
0

在运行下面的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

+3

有没有机会使用“颜色”为该表输出HTML?如果是这样,HTML/CSS使用美国拼写的“颜色”,因此任何改变它的尝试都行不通,并且将应用默认的“白色”。 – scunliffe 2010-12-20 19:08:03

+0

@scunliffe +1为CSS提示;拼写为 – 2010-12-20 19:11:43

回答

1

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

我不知道为什么您的代码将颜色更改为白色而不是#F0F0F0,因为您的代码中没有白色或淡黄色的条纹,所以我所能做的只是提供一些使代码更有效的方法。

而不是更新while循环的每次迭代中的所有行,如果rent表中有id列(主键具有自动增量),则可以在while循环中使用此值,而不必测试第二次约会。

$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); 
    } 
} 
+0

的另一个虚拟+1将F0F0F0更改为#F0F0F0,并且它完美运行! – methuselah 2010-12-21 03:58:59