2014-02-18 38 views
0

我想在數據庫中插入帶有事件的日期,首先我使用日期和textarea填充表格, 如圖中所示。填好textarea後,你會點擊提交以保存數據庫中的事件,只有有值的textarea被假設存儲,但是發生了什麼,即使沒有事件輸入,所有的日期都會保存。 enter image description here在mysql數據庫中保存事件的日期

以下是保存在數據庫中的代碼。

if(isset($_POST['submit_calendar'])) 
     { 
       $memo = $_POST['memo']; 
       $cMonth = $_POST['cal_month']; 
       $cYear = $_POST['cal_year']; 

       $timestamp = mktime(0,0,0,$cMonth,1,$cYear); 
       $maxday = date("t",$timestamp); 
       $thismonth = getdate ($timestamp); 
       $startday = $thismonth['wday']; 

       for ($i=0; $i<$maxday+$startday; $i++) 
       { 
        if($i < $startday) continue; 

        if($memo == NULL) 
        { 
         $i++; 
         continue; 
        } 
        else  
        { 
         $date = $cYear."/".$cMonth."/".($i-$startday+1); 
         $event = $memo[$i-$startday]; 

         $query = "INSERT INTO calendar SET cal_date='$date', cal_event='$event'"; 
         $q = mysql_query($query); 
        } 
       } 
     } 
+0

檢查事件充滿與否。如果填充然後插入。 –

回答

0

嘗試

if(strlen(trim($event))>0){ 
    $query = "INSERT INTO calendar SET cal_date='$date', cal_event='$event'"; 
} 
+0

它的工作原理,但如果一個變量沒有被設置任何值,那麼最新的if($ event == NULL), – user2901740

+0

NULL是什麼意思。所以在你的情況下,如果有空間,那麼$ event == NULL將失敗 –

+0

你不覺得!空(trim($ memo))會更優雅嗎?順便說一句。我不確定你想要完成什麼,但是如果你想通過一次提交保存多個備忘錄,你的代碼就不會工作 – MSadura