0

テーブル全体を表示しようとしていますが、日ごとにグループ化されています。

だから私が

SELECT * FROM events ORDER BY event_date, event_time

このように表示させたいと思います。

<table>
<th><?php echo date('W M D', strtotime($row->event_date)); ?></th>
<tr>
<td>Location Time Event</td>
</tr>

<th><?php echo date('W M D', strtotime($row->event_date)); ?></th>
<tr>
<td>Location Time Event</td>
<td>Location Time Event</td>
</tr>
</table>

しかし、どこにも例が見つかりません。アイテムのグループ化と合計のみ。

編集。日を追加するのではなく、日ごとにアイテムを表示します。

出力例

September 8th
 -- Location Time Event
 -- Location Time Event

September 9th 
 -- Location Time Event

October 10th
 -- Location Time Event

編集2。

コードを書き直した

<?php 
            require_once("config.php");
            $results = $db->get_results('SELECT * FROM events ORDER BY event_date, event_time');
            foreach($results as $row){
                $row->id // all the items are available as objects
            }
            $curr_date = '' 
            foreach($results as $row){
            if ($curr_date != $row->event_date){
            /* Handle the date’s title here */
            printf("<h1>%s</h1>", $row->event_date);
            $curr_date = $row->date
            }
            /* Handle row items here */
            printf("<tr><td>%s</td><td>%s</td></tr>", $row->presenter , $row->location); 
            }
          ?>

まだエラーを受信して​​います。このあたりでエラーが表示されます $row->id 予期しない T_VARIABLE で

4

3 に答える 3

0

助けてくれてありがとう!

コード:

$results = $db->get_results('SELECT * FROM events ORDER BY event_date, event_time');
            $curr_date = ''; 
            foreach($results as $row){
            if ($curr_date != $row->event_date){
            /* Handle the date’s title here */
            printf("<h1>%s</h1>", $row->event_date);
            $curr_date = $row->event_date;
            }
            /* Handle row items here */
            printf("<tr><td>%s</td><td>%s</td></tr></br>", $row->presenter , $row->location); 
            }
于 2012-08-30T21:27:53.743 に答える
0

これはテストしていませんが、日付とその後の時間を反復処理できる多次元配列を作成します。

$tempArray = array();

$query = "SELECT event_date, event_time FROM events ORDER BY event_date, event_time";
$result = mysqli_query($link, $query) or die(mysqli_error($link));

while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
    $event_date = $row[event_date];
    $event_time = $row[event_time];

    $tempArray[$event_date][] = $event_time;
}

foreach($tempArray as $k1=>$event_date) {
    echo "<h1>$event_date</h1>";

    foreach($tempArray[$event_date] as $k2=>$event_time) {
        echo "<p>$event_time</p>";
    }
}

mysqli_free_result($result);

unset($tempArray);
于 2012-08-30T21:10:18.640 に答える
0

このようなものはどうですか:

$result = mysql_query("SELECT * FROM events ORDER BY event_date, event_time");
while($row = mysql_fetch_array($result)) {
    $event_date = $row['event_date'];
    $location_event = $row['some event'];
    if ($event_date == $last_date) {
        echo "<tr><td>$location_event</td></tr>";
    } else {
        echo "<th>$event_date</th>";
        echo "<tr><td>$location_event</td><tr>";
    }
    $lastdate = $event_date;
}
于 2012-08-30T19:27:07.403 に答える