0

セミナーの投稿を扱うWebページを作ろうとしています。有効期限 (またはセミナーの開催日) を過ぎたセミナーをページから削除したいのですが、私のテーブルには 3 つの日付スロットがあり、1 つは月、1 つは日、もう 1 つは年です。これらはすべて表内の整数です。

if(date("Y") > $info['year'])  //if the year is old
{ $sql = "DELETE FROM seminars WHERE ID = '$ID'";
  mysql_query($sql); } //then delete this seminar
 else if(date("Y") == $info['year'] && date("n") > $info['month']) //if we are in the year of the seminar, but the month is now old
    { $sql = "DELETE FROM seminars WHERE ID = '$ID'"; 
      mysql_query($sql);} // then delete this seminar

else if(date("Y") == $info['year'] && date("n") == $info['month'] && date("j") > $info['day'])  //if we are in the year of the seminar and the month of the seminar, but the day is old
    { $sql = "DELETE FROM seminars WHERE ID = '$ID'";
      mysql_query($sql); }  // then delete this seminar
 else // if there is no reason to delete the seminar then print out this seminar

上に見られるように、私は年月日のシステム時刻を使用しようとし、それぞれを比較して古いものがないかどうかを確認しました。ただし、セミナーを削除することはありません。

このステートメントはwhile$infoループ内にあり、テーブルからすべての行を取得できるためです。しかし、delete ステートメントが機能していない場合でも、セミナーは表示されませんよね? ちなみに、最後のelseステートメントは、セミナーの表示が始まる場所です。

誰かがこれを行うためのより良い方法を知っていれば、私はそれを大いに感謝します. 私はしばらくこれに苦労してきました。

4

3 に答える 3

0

月、日、年ごとに 3 つの列を持つ必要はありません。代わりに、列タイプを持つ列を 1 つだけ持つ必要がありますDATETIME。これにより、作業がはるかに簡単になります。現在の日付と一致する必要があるだけです。

于 2013-09-27T16:47:04.993 に答える