显示事件列表的PHP日历

显示事件列表的PHP日历,php,Php,我有一个数据库表,它有两列eventName | eventDate。我已经创建了一个函数,它接受startDate和endDate,我想在列表视图中显示事件列表,每个日期作为标题 在下面的简短示例中,我知道我可以使用SQL检索完整的事件列表。然后如何插入事件头,以便以正确格式的数组返回它们 function retrieveEvents($startDate, $endDate) { // run SQL query // if($stmt->rowCount(

我有一个数据库表,它有两列eventName | eventDate。我已经创建了一个函数,它接受startDate和endDate,我想在列表视图中显示事件列表,每个日期作为标题

在下面的简短示例中,我知道我可以使用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...
?>

嗨,丹尼尔。谢谢你的回复。我知道如何编写查询。但我不知道如何正确格式化输出数组,以便将日期作为各自的标题:我认为在SQL查询中选择所需的数据会更有效,而不是从数据库中获取所有结果,然后在PHPyeah中处理它们。我已经在使用您上面建议的查询了。更重要的是,我的问题在于如何显示上面所需的输出,因为我想在列出事件之前先显示日期。然后,您应该只选择“eventDate”,并通过执行以下操作来输出:$event=mysql\u fetch\u objectmysql\u querySELECT*FROM`yourTableName`其中`eventDate`>=$startDate和`eventDate`eventDate;