我有一个带有假日目的地的表格,其中包含visit_date列和状态列。 访问日期是指他们计划去往/或去过这个目的地的日期。当这些假期被插入到数据库中时,我写了这个以确定人们是否要去旅行。
$date = $_POST['date'];
$today = date("Y/m/d");
if($date<$today){
$status="been";
}else{
$status="going";
}
但是,我需要做的是编写一个在插入后运行的脚本来更新旧假日计划的状态,如果visit_date比昨天,上周等的今天日期还要少,那么就是这样。
这是我到目前为止所拥有的
$result = mysql_query("SELECT * FROM trips");
while($row = mysql_fetch_array($result))
{
//echo $row['visit_date'];
if ($row['visit_date'] < $today){
echo "this trip has already happened";
//code to update status if trip already happened
}
}
答案 0 :(得分:2)
你可以这样做:
UPDATE trips
SET status = 'been'
WHERE status = 'going' AND visit_date < NOW()
但你知道什么会更好吗?摆脱status
列。然后,无论何时您需要选择行程并想要确定其状态,请使用条件IF
语句,如下所示:
SELECT
trip_id,
IF(visit_date < NOW(), 'been', 'going') AS status,
...
FROM trips