成功查询后,为什么日历上没有显示任何事件?

用户名

像我在这里阅读过的许多其他文章一样,我正在尝试使用更新形式的Davild Walsh的日历教程来制作基于php / sql的事件日历

看来我可以很好地连接到数据库,甚至可以填充$ bookings和$ events数组。但是我的日历网格中没有显示任何事件。有人可以帮我看看我丢失了什么,为什么日历中没有填充事件?此时,我什至没有做一个复杂的select语句……我只是选择了所有事件……成功了……所以我认为这一定是一些小事情,一些细节上的遗漏或丢掉了一些东西。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。任何帮助都感激不尽。参考代码如下:

使用PDO成功连接到数据库,但发布以供参考:

 try {
 $bdd = new PDO('mysql:host=*****;dbname=*****', '*****', '***');
 } catch(Exception $e) {
  exit('Unable to connect to database.');
 }

像这样查询数据库:

$events = array();
 $query = "SELECT * FROM oipevents";
 try {
 $result = $bdd->query($query) or die(print_r($bdd->errorInfo()));
 } catch (Exception $e) {
     echo "no results";
     exit;
 }
 $bookings = $result->fetchAll(PDO::FETCH_ASSOC);

 foreach ($bookings as $row) {
     $events[$row['event_date']][] = $row;
 } 

然后使用以下代码绘制日历(注意,带有控件的日历显示得很好,没有任何事件显示):

/* draws a calendar */
function draw_calendar($month,$year,$events = array()){

    /* draw table */
    $calendar = '<div class="cal_table">';

    /* table headings */
    $headings = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
    $calendar.= '<div class="cal_table_cell theme_blue_secondary">'.implode('</div><div class="cal_table_cell theme_blue_secondary">',$headings).'</div></div><!-- #cal_table -->';

    /* days and weeks vars now ... */
    $running_day = date('w',mktime(0,0,0,$month,1,$year));
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year));
    $days_in_this_week = 1;
    $day_counter = 0;
    // $dates_array = array();

    /* row for week one */
    $calendar.= '<div class="cal_table">';

    /* print "blank" days until the first of the current week */
    for($x = 0; $x < $running_day; $x++):
        $calendar.= '<div class="cal_table_cell">&nbsp;</div>';
        $days_in_this_week++;
    endfor;

    /* keep going with days.... */
    for($list_day = 1; $list_day <= $days_in_month; $list_day++):
        $calendar.= '<div class="cal_table_cell"><div style="position:relative;height:100px;">';
            /* add in the day number */
            $calendar.= '<div class="day-number">'.$list_day.'</div>';

            $event_day = $year.'-'.$month.'-'.$list_day;

            if(isset($events[$event_day])) {
                foreach($events[$event_day] as $event) {
                //  $calendar.= '<div class="event">'.$event['title'].'</div>';
                    $calendar.='<div class="event"><a href="?event='.$event['title'].'">'.$event['start'].' - '.$event['tijdtot'].'</span></a></div>';
                }
            }
            else {
                $calendar.= str_repeat('',2);
            }
        $calendar.= '</div></div><!-- #cal_table_cel -->';
        if($running_day == 6):
            $calendar.= '</div><!-- #cal_table -->';
            if(($day_counter+1) != $days_in_month):
                $calendar.= '<div class="cal_table">';
            endif;
            $running_day = -1;
            $days_in_this_week = 0;
        endif;
        $days_in_this_week++; $running_day++; $day_counter++;
    endfor;

    /* finish the rest of the days in the week */
    if($days_in_this_week < 8):
        for($x = 1; $x <= (8 - $days_in_this_week); $x++):
            $calendar.= '<div class="cal_table_cell">&nbsp;</div><!-- #cal_table_cell -->';
        endfor;
    endif;

    /* final row */
    $calendar.= '</div><!-- #cal_table -->';



    /** DEBUG **/
    $calendar = str_replace('</div>','</div>'."\n",$calendar);


    /* all done, return result */
    return $calendar;
}

function random_number() {
    srand(time());
    return (rand() % 7);
}

/* date settings */
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
$year = (int)  ($_GET['year'] ? $_GET['year'] : date('Y'));

    if($month < 10){
        $month = '0'.$month;
    }
/* select month control */
$select_month_control = '<select name="month" id="month">';
for($x = 1; $x <= 12; $x++) {
    $select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : ' selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
}
$select_month_control.= '</select>';

/* select year control */
$year_range = 7;
$select_year_control = '<select name="year" id="year">';
for($x = ($year-floor($year_range/2)); $x <= ($year+floor($year_range/2)); $x++) {
    $select_year_control.= '<option value="'.$x.'"'.($x != $year ? '' : ' selected="selected"').'>'.$x.'</option>';
}
$select_year_control.= '</select>';

/* "next month" control */
$next_month_link = '<a href="?month='.($month != 12 ? $month + 1 : 1).'&year='.($month != 12 ? $year : $year + 1).'" class="control">Next Month &gt;&gt;</a>';

/* "previous month" control */
$previous_month_link = '<a href="?month='.($month != 1 ? $month - 1 : 12).'&year='.($month != 1 ? $year : $year - 1).'" class="control">&lt;&lt;    Previous Month</a>';


/* bringing the controls together */
$controls = '<form method="get">'.$select_month_control.$select_year_control.'&nbsp;<input type="submit" name="submit" value="Go" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$previous_month_link.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.$next_month_link.' </form>';


echo '<h2 style="float:left; padding-right:30px;">'.date('F',mktime(0,0,0,$month,1,$year)).' '.$year.'</h2>';
echo '<div style="float:left;">'.$controls.'</div>';
echo '<div style="clear:both;"></div>';
echo draw_calendar($month,$year,$events);
echo '<br /><br />'; 

有人看到为什么活动没有进入日历吗?当我执行print_r($ bookings)和print_r($ events)时,我可以看到填充的数组-那么怎么回事?我也应该发布数组以供参考吗?好的... print_r($ bookings)的$ bookings数组:

Array([0] => Array([id] => 1 [title] =>测试事件[event_date] => 2016-07-27 09:30:00 [end] => 2016-07-27 10:00 :00 [url] => http://www.auburn.edu [allDay] =>假[description] =>测试事件[部门] =>校友)...)

来自print_r($ events)的事件数组:

Array([2016-07-27 09:30:00] => Array([0] => Array([id] => 1 [title] =>测试事件[event_date] => 2016-07-27 09: 30:00 [结束] => 2016-07-27 10:00:00 [url] => http://www.auburn.edu [allDay] =>假[描述] =>测试事件[部门] =>校友))..)

请帮忙,谢谢!

雪人CGN

这似乎是错误的阵列访问问题。您的$events数组具有带有日期和时间的键,但是您可以通过$event_day没有时间成分变量来访问它此外,您可以自己将日期字符串拼凑在一起,并且日期不是零填充的,因此它将查找'2016-8-1'数组键,但找不到它,因为数据库结果显示为'2016- 08-01'。

为了进行进一步的调试,将以下内容放在else部分中if(isset($events[$event_day])) {,您将看到会发生什么:

echo $event_day . ' key not found in ' . print_r(array_keys($events), true);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TableView没有注册任何事件Corona

来自分类Dev

为什么setup.pydependency_links没有做任何事情?

来自分类Dev

iOS上的Safari,在弹出虚拟键盘之前是否有任何事件?

来自分类Dev

未使用PushSharp发送iOS通知。也没有引发任何事件

来自分类Dev

有没有办法侦听Reactive Extensions中没有引发任何事件?

来自分类Dev

Math.round在我的网页上没有做任何事情

来自分类Dev

$ locationChangeStart之前是否有任何事件?

来自分类Dev

“ make”命令没有做任何事情

来自分类Dev

选择没有任何事件具有特定值BigQuery的ID

来自分类Dev

为什么对组件/应用程序进行“检查”而没有任何事情?

来自分类Dev

为什么任何事件在动态加载的代码中都不起作用?

来自分类Dev

在没有任何事件的情况下调用Javascript函数

来自分类Dev

想要在控制器上执行PHP脚本后关闭弹出窗口并重定向到相应页面而没有任何事件

来自分类Dev

为什么setup.pydependency_links没有做任何事情?

来自分类Dev

iOS上的Safari,在弹出虚拟键盘之前是否有任何事件?

来自分类Dev

未使用PushSharp发送iOS通知。也没有引发任何事件

来自分类Dev

用户转弯时是否有任何事件发生?

来自分类Dev

为什么“如果”在此布尔方法中没有做任何事情?

来自分类Dev

是否有日历插件可以显示而无需任何事件

来自分类Dev

为什么jQuery事件“ .on”没有任何事件参数

来自分类Dev

为什么javascript addEventListener不做任何事情?

来自分类Dev

存储过程说命令成功完成但实际上没有做任何事情

来自分类Dev

为什么我的 ASP.NET 项目没有做任何事情?

来自分类Dev

为什么覆盖视图控制器的导航项似乎没有做任何事情?

来自分类Dev

select 没有从 jQuery 触发任何事件

来自分类Dev

为什么这没有做任何事情?

来自分类Dev

为什么 grid-template-row 在这里没有做任何事情?

来自分类Dev

在工具栏中的任何事件上显示/隐藏 RecyclerView 中的视图

来自分类Dev

移动到插件后,显示模态的按钮没有做任何事情

Related 相关文章

  1. 1

    TableView没有注册任何事件Corona

  2. 2

    为什么setup.pydependency_links没有做任何事情?

  3. 3

    iOS上的Safari,在弹出虚拟键盘之前是否有任何事件?

  4. 4

    未使用PushSharp发送iOS通知。也没有引发任何事件

  5. 5

    有没有办法侦听Reactive Extensions中没有引发任何事件?

  6. 6

    Math.round在我的网页上没有做任何事情

  7. 7

    $ locationChangeStart之前是否有任何事件?

  8. 8

    “ make”命令没有做任何事情

  9. 9

    选择没有任何事件具有特定值BigQuery的ID

  10. 10

    为什么对组件/应用程序进行“检查”而没有任何事情?

  11. 11

    为什么任何事件在动态加载的代码中都不起作用?

  12. 12

    在没有任何事件的情况下调用Javascript函数

  13. 13

    想要在控制器上执行PHP脚本后关闭弹出窗口并重定向到相应页面而没有任何事件

  14. 14

    为什么setup.pydependency_links没有做任何事情?

  15. 15

    iOS上的Safari,在弹出虚拟键盘之前是否有任何事件?

  16. 16

    未使用PushSharp发送iOS通知。也没有引发任何事件

  17. 17

    用户转弯时是否有任何事件发生?

  18. 18

    为什么“如果”在此布尔方法中没有做任何事情?

  19. 19

    是否有日历插件可以显示而无需任何事件

  20. 20

    为什么jQuery事件“ .on”没有任何事件参数

  21. 21

    为什么javascript addEventListener不做任何事情?

  22. 22

    存储过程说命令成功完成但实际上没有做任何事情

  23. 23

    为什么我的 ASP.NET 项目没有做任何事情?

  24. 24

    为什么覆盖视图控制器的导航项似乎没有做任何事情?

  25. 25

    select 没有从 jQuery 触发任何事件

  26. 26

    为什么这没有做任何事情?

  27. 27

    为什么 grid-template-row 在这里没有做任何事情?

  28. 28

    在工具栏中的任何事件上显示/隐藏 RecyclerView 中的视图

  29. 29

    移动到插件后,显示模态的按钮没有做任何事情

热门标签

归档