2011-10-21 38 views
0

我試圖創建一個日曆應用程序。日曆腳本PHP

我有一個問題的方式來回顯日期與事件。

我已經試過這樣:

$nuvarende_maned=date("m"); 
$sql=("SELECT * FROM kalender WHERE begivenhed_maned='$nuvarende_maned'"); 
$result=mysql_query($sql); 
$count=mysql_num_rows($result); 
$row=mysql_fetch_array($result); 

echo "<div id='kalender'>"; 

for($a=1;$a<=date("t");$a++){ 

$dag_m_begivenhed = $row['begivenhed_dag']; 

if($count>=1 && $dag_m_begivenhed == $a){ 
    echo "<div class='kalender_dag'><a title='$row[begivenhed_overskrift]' href=''>".$a."</a></div>"; 
} else { 
    echo "<div class='kalender_dag'>".$a."</div>"; 
} 
} 

echo "</div>"; 

它打印一個日期的事件。如果創建while()循環,我需要一些方法。但我不知道該把它放在哪裏。 我嘗試了一段時間()的for(),但它不起作用。 我知道我有$ row = mysql_fetch_array($ result);在一開始,這就是爲什麼我總是隻有數據庫中的第一個匹配。我只是這樣做,看看是否有什麼東西從數據庫中出來。

回答

1

在進入日曆生成循環之前,您必須獲取所有日曆事件。現在,您只能獲取查詢結果的第一行,並丟棄其餘部分(mysql_fetch_array將單個ROW作爲數組返回,而不是整個結果集)。

$events = array(); 

$sql = "SELECT * FROM kalender WHERE begivenhed_maned='$nuvarende_maned'"; 
$result = mysql_query($sql) or die(mysql_error()); 

while($row = mysql_fetch_assoc($result)) { 
    $events[$row['begivenhed_dag']] = $row; 
} 

for ($a = ...) { 
    if (isset($events[$a])) { 
     ... output whatever parts of $events[$a] you want 
    } 
} 

請注意,這不會在一天內處理多個事件。如果你需要這個功能,那麼你必須稍微修改一下數據庫抓取循環,以便將這些多個事件存儲在一個子數組中。

+0

這適用於現在! :o) 但是,你能告訴我這裏發生了什麼?也許告訴我如何讓sub_array()在同一天的更多事件? – skolind