0

我有一个包含度假目的地的表格,其中包含一个 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

  }
  }
4

1 回答 1

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
于 2012-06-11T09:27:40.950 回答