繁体   English   中英

PHP日历显示事件列表

[英]PHP Calendar displaying list of events

我有一个具有两列eventName|eventDate的数据库表。 我创建了一个接受startDate和endDate的函数,我想在ListView中显示事件列表,并以每个日期作为标题。

在下面的简短示例中,我知道可以使用SQL检索完整的事件列表。 然后,如何放置事件标头,以便可以将它们以正确格式的数组返回?

function retrieveEvents($startDate, $endDate) {
    // run SQL query
    // 
    if($stmt->rowCount() > 0) {
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            // how do I write this part such that I can output event headers in my array        
            $events = $row;
        }
    }
}

所以我的预期输出是

1st July 2013 ($startDate)
- Tea with President - 1300h
- Mow the lawn - 1330h
- Shave the cat - 1440h
2nd July 2013
- Shave my head - 0800h
3rd July 2013
4th July 2013 ($endDate)
- Polish the car - 1000h

在您的MYSQL查询中:

SELECT * FROM `yourTableName` WHERE `eventDate` >= $startDate AND `eventDate` <= $endDate

PS:我不确定引号是否围绕您查询中的变量。

PPS:从不使用*选择列,始终仅选择所需的列。 我在这里使用它是因为我不知道您的列的名称

我最终在PHP中进行检查,仅在检测到其他日期时才打印新行。

以下代码,以防将来有人需要时使用。

<?php
        $currentPrintDay = 0;
        $currentPrintMonth = 0;
        $currentPrintYear = 0;

        echo "<table>"
        foreach($reservationsToShow as $row):
        // get day, month, year of this entry
        $timestamp = strtotime($row['timestamp']);
        $day = date('d', $timestamp);
        $month = date('m', $timestamp);
        $year = date('Y', $timestamp);

        // if it does not match the current printing date, assign it to the current printing date,
        // assign it, print a new row as the header before continuing
        if($day != $currentPrintDay || $month != $currentPrintMonth || $year != $currentPrintYear) {
            $currentPrintDay = $day;
            $currentPrintMonth = $month;
            $currentPrintYear = $year;

            echo 
            "<tr>" .
            "<td colspan='100%'>". date('d-m-Y', $timestamp) . "</td>" .
            "</tr>";
        }
        // continue to print event details from here on...
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM