2013-01-20 21 views
0

所以我有一个非常简单的日历的代码,但是我无法弄清楚如何查询mysql数据库以查找每月每一天的任何事件。我知道如何查询数据库的信息,但我不知道我会把它放在创建日历或如何构造它或任何东西的代码中。 ive看了很多PHP日历的代码,并且对于每个代码我都没有能够从我的数据库中获取数据,我只是不知道该怎么做。任何帮助感谢,谢谢。 日历代码editted包括分贝的东西:连接数据库mysql事件的php日历

include ("connection.php"); 

$date =time(); 
$day = date('d', $date); 
$month = date('m', $date); 
$month = $month + "02"; 
$year = date('Y', $date); 
$years = substr($year, 2, 2); 

$first_day = mktime(0,0,0,$month, 1, $year); 
$title = date('F', $first_day); 
$day_of_week = date('D', $first_day); 
switch($day_of_week){ 
    case "Sun": $blank = 0; break; 
    case "Mon": $blank = 1; break; 
    case "Tue": $blank = 2; break; 
    case "Wed": $blank = 3; break; 
    case "Thu": $blank = 4; break; 
    case "Fri": $blank = 5; break; 
    case "Sat": $blank = 6; break; 
} 

$days_in_month = cal_days_in_month(0, $month, $year); 
echo "<table border=1 width=294>"; 
echo "<tr><th colspan=7> $title $year </th></tr>"; 
echo "<tr><td width=42>S</td><td width=42>M</td><td 
width=42>T</td><td width=42>W</td><td width=42>T</td><td 
width=42>F</td><td width=42>S</td></tr>"; 
$day_count = 1; 
echo "<tr>"; 

while ($blank > 0) 
{ 
    echo "<td></td>"; 
    $blank = $blank-1; 
    $day_count++; 
} 
$day_num = 1; 
while ($day_num <= $days_in_month) 
{ 

echo "<td> $day_num <br/>"; 


$result = mysql_query("SELECT time, length FROM hire WHERE day = '$day_num' and month = '$month' and year = '$years'") or die ('Error: '.mysql_error()); 

而($行= mysql_fetch_array($结果)){

$time = $row['time']; 
$length = $row['length']; 

} 

if (isset($time) and (isset($length))) { 
echo "Time: " . $time . "<br/> Length: " . $length . "<br/>"; 
} 

"</td>"; 



    $day_num++; 
    $day_count++; 
     if ($day_count > 7) 
     { 
     echo "</tr><tr>"; 
     $day_count = 1; 
     } 

} 

while ($day_count >1 && $day_count <=7) 
{ 
    echo "<td> </td>"; 
    $day_count++; 
} 

echo "</tr></table>"; 

回答

0

你需要把你的数据库代码到地方的日期单元被输出。这里是代码:

<?php 
include ("connection.php"); 

$date =time(); 
$day = date('d', $date); 
$month = date('m', $date); 
$month = $month + "01"; 
$year = date('Y', $date); 

$first_day = mktime(0,0,0,$month, 1, $year); 
$title = date('F', $first_day); 
$day_of_week = date('D', $first_day); 
switch($day_of_week){ 
    case "Sun": $blank = 0; break; 
    case "Mon": $blank = 1; break; 
    case "Tue": $blank = 2; break; 
    case "Wed": $blank = 3; break; 
    case "Thu": $blank = 4; break; 
    case "Fri": $blank = 5; break; 
    case "Sat": $blank = 6; break; 
} 

$days_in_month = cal_days_in_month(0, $month, $year); 
echo "<table border=1 width=294>"; 
echo "<tr><th colspan=7> $title $year </th></tr>"; 
echo "<tr><td width=42>S</td><td width=42>M</td><td width=42>T</td><td width=42>W</td><td width=42>T</td><td width=42>F</td><td width=42>S</td></tr>"; 
$day_count = 1; 
echo "<tr>"; 

while ($blank > 0) 
{ 
    echo "<td></td>"; 
    $blank = $blank-1; 
    $day_count++; 
} 
$day_num = 1; 
while ($day_num <= $days_in_month) 
{ 
    //database code here 
    $result = ''; //formatted html result 
    echo "<td> $day_num $result</td>"; 
    $day_num++; 
    $day_count++; 
    if ($day_count > 7) 
    { 
     echo "</tr><tr>"; 
     $day_count = 1; 
    } 
} 

while ($day_count >1 && $day_count <=7) 
{ 
    echo "<td> </td>"; 
    $day_count++; 
} 

echo "</tr></table>"; 
+0

嗯,但每天的结果取决于一天,所以当我查询数据库时,day = $ day_num和month = $ month?目前在我的数据库中的数据是作为一个日期格式,例如2013-03-01,ID必须改变,以存储日值,月值和年值呢? – Lubblobba

+0

好吧,它打印单词“时间:”和“长度:”,但没有任何结果,并将其打印在日历上方,但代码提供时间和长度不在日历内的结果,任何想法? – Lubblobba

+0

哦,我已经设法在日历内获得它,但是它不会产生结果,只有当我将代码从日历中除去才能测试它:s – Lubblobba