更新“状态”单元格,如果visit_date是今天的日期 php mysql <


Update "status" cell if visit_date is < todays date php mysql

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

你可以做:

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