2014-03-04 36 views
0

我正在創建一個日曆,用於顯示存儲在數據庫中的日期的事件。日曆顯示YEAR的當前月份。我試圖查詢數據庫中的事件,但問題是,最後一個值是唯一顯示的值。另外我不確定如何查詢具有相同日期的事件。這是我所做的語法。任何想法?在日曆上顯示來自數據庫的事件

$query = "SELECT cal_event, cal_date FROM calendar WHERE YEAR(cal_date) = $cYear AND MONTH(cal_date) = $cMonth"; 

         $q = mysql_query($query); 

         while($rs = mysql_fetch_array($q)) 
         { 

          $events = $rs['cal_event']; 
          $event_day = date("j", strtotime($rs['cal_date'])); 
         } 

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

         if(($i % 7) == 0) echo "<tr >"; 
         if($i < $startday) echo "<td style='border:3px solid #fff;background-color:#fff'></td>"; 
         else 
          if($i <= $maxday+$startday) 
            { 
             echo "<td align='center' valign='middle' height='83px' style='border:3px solid #fff;background-color:#d9d9d9' ><span style='float:right;font-weight:bold'>" .($i - $startday + 1) ."</span><br><textarea name='' maxlength='50' style='width:108px; height:50px; resize:none;'>"; 

             if($event_day == $i - $startday + 1) echo $events; 
             echo "</textarea></td>"; 
            } 
         if(($i % 7) == 6) echo "</tr>"; 
        } 

UPDATE SOLUTION。

這裏是你不應該使用「mysql_」功能,你有(至少)一個邏輯錯誤在代碼中必不可少的提到關於我的問題解決方案

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

          $query = "SELECT * from calendar where cal_date = '".$cYear."-".$cMonth."-".($i - $startday + 1)."' "; 
          $q = mysql_query($query); 
          $rs=mysql_fetch_array($q); 

          if(($i % 7) == 0) echo "<tr >"; 
          if($i < $startday) echo "<td style='border:3px solid #fff;background-color:#fff'></td>"; 
          else 
           if($i <= $maxday+$startday) 
             { 
              echo "<td align='center' valign='middle' height='83px' style='border:3px solid #fff;background-color:#d9d9d9' ><span style='float:right;font-weight:bold'>" .($i - $startday + 1) ."</span><br><textarea name='' maxlength='50' style='width:108px; height:50px; resize:none;'>"; 
              echo $rs['cal_event']; 
              echo "</textarea></td>"; 



             } 
          if(($i % 7) == 6) echo "</tr>"; 
         } 

回答

0

分開。

while循環:

    while($rs = mysql_fetch_array($q)) 
        { 

         $events = $rs['cal_event']; 
         $event_day = date("j", strtotime($rs['cal_date'])); 
        } 

通過所有結果循環,但不這樣做與他們任何事情。因此,變量$events$event_day正在設置爲遇到的最後一個值。你應該在這個循環中做一些事情。

+0

我測試了把for循環放在while循環中,但它重複製作日曆。 – user2901740

相關問題