我需要创建一个脚本,将数据库中的一个字段(存储了一个日期,其类型为“TEXT”并且无法更改日期)与当前服务器日期进行比较。
日期的编码方式如下“1380571547”,所以我需要使用strftime()
来解码它们。例如,使用 strftime
解码的该字段对应于此“Sep-30-2013, 22:05”
我需要的是将这些字段与当前日期进行比较,并根据该条件,在另一个字段中写入“过期”之类的内容。
为了实现这一目标,我编写了以下代码块:
<?php
require("connection.php");
$today = strftime('%b-%d-%Y, %H:%M');
$exp_date = mysql_query("SELECT numbers FROM date");
while($row = mysql_fetch_array($exp_date))
{
echo (strftime ( '%b-%d-%Y, %H:%M', $row ['numbers'])). "<br />";
}
if ($exp_date < $today) {
$sql = "INSERT INTO date (changed) VALUES ('EXPIRED')";
$result = mysql_query($sql);
echo "ADDED!";
}
?>
但是,这段代码不起作用,有人可以帮助我吗?
最佳答案
PHP 不是我的强项,但在我看来,你的条件是对数组进行比较,
IE:
if ($exp_date < $today) // will always be false.
您的代码可能必须看起来更像这样。
while($row = mysql_fetch_array($exp_date))
{
if ($row[0] < $today)
{
$sql = "Update date set changed = VALUE where rowid = rowid";
$result = mysql_query($sql);
echo "ADDED!";
}
}
话虽如此,我可能会使用 case 语句在 SQL 中进行比较和更新,
Update Date
set changed = case when number > ExpiryDate
then "Expired"
else "Current"
end
关于php - MySQL - 比较一列中的所有值并写入另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060477/