0

休暇の目的地を含むテーブルがあり、visit_date列とstatus列があります。訪問日は、彼らがこの目的地に行く予定の日、または行ったことがある日です。これらの休日がデータベースに挿入されているとき、私は人々がこの旅行に行くのか、それとも行ったことがあるのか​​を判断するためにこれを書きました。

$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 に答える