2013-09-27 82 views
0

我正在嘗試製作一個網頁,討論研討會發布內容。我希望該頁面刪除已過期(或研討會發生日期)的研討會 我的表格有3個日期插槽,一個爲月份,一個爲日期,一個爲年份。他們都是桌子上的整數。根據當前日期和表格日期刪除mysql表格行

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 

從上面可以看出,我試圖使用系統時間爲年份一天,並比較每個人看看是否有什麼舊的。但是,它從不刪除研討會。

現在,$info是錶行,因爲此語句位於while循環中,因此它可以抓取表中的每一行。但即使刪除語句​​不起作用,那麼它也不會顯示研討會的權利?最後的陳述是展示研討會的地方。

如果有人知道更好的方法來做到這一點,我將不勝感激。我一直在爲此苦苦掙扎了一段時間。

+0

「我希望頁面刪除超過其到期日期(或研討會發生日期)的研討會「是否有具體理由說明爲什麼不使用MySQL DATETIME列類型? – u54r

+0

我不知道如何將我從表單中獲取的日期轉換爲該數據類型。 – ForgottenOne

+0

'$ year。 ' - '。 $月。 ' - '。 $ date'給你一個有效的MySQL'DATE'。 – TheWolf

回答

0

您不必每個月,每天和每年都有三列。相反,您應該只有一列具有列類型DATETIME。這將使你的工作更容易。你只需要匹配當前的日期。

1

雖然這將是更好地重新設計你的表包含一個日期欄,您可以使用您現有的模式是這樣的:

if (date("Y-m-d") > sprintf("%04d-%02d-%02d", $info['year'], $info['month'], $info['day'])) { 
    $sql = "DELETE FROM seminars WHERE ID = '$ID'"; 
    mysql_query($sql);} // then delete this seminar 
} 
0

你可以這樣做:

$infodate = strtotime(implode('-', array($info['year'], $info['month'], $info['day']))); 

if (time() > $infodate) { 
    mysql_query("DELETE FROM seminars WHERE ID = '$ID'") 
} else { 
    //print out this seminar 
}