Zur Navigation

Abfrage nach Jahr/Monat

1 webuser

Hallo,
ich will die Daten nach Jahr und Monat ausgeben.
Einen vorhandenen Code habe ich etwas angepasst, aber die Ausgabe ist noch falsch.

Ausgabe soll so sein:
<h2> 2018</h2>
<h3> April</h3>
<h4> Gruppe1</h4>
echo $event_startdate." ".$event_enddate." ". $guest;
echo $event_startdate." ".$event_enddate." ". $guest;
<h4> Gruppe2</h4>
echo $event_startdate." ".$event_enddate." ". $guest;
echo $event_startdate." ".$event_enddate." ". $guest;
<h3> Mai</h3>
echo $event_startdate." ".$event_enddate." ". $guest;
echo $event_startdate." ".$event_enddate." ". $guest;


    $query = "SELECT id, event_enddate, event_startdate, guest, gruppe FROM tbl_entries ORDER BY gruppe, event_startdate desc";
    $result = mysqli_query($conn, $query);
    $output = '';
    if ($result && $result->num_rows > 0) {
        // initialize array to manage archived events
        $data = array();
        // add each archived entry to $data[] as dimensional array entry
    ]
     

   while ($row = $result->fetch_assoc()) {
            $year = date('Y', strtotime($row['event_startdate']));
            $month = date('F', strtotime($row['event_startdate']));
            $data[$year][$month][] = $row;
        }
        $result->free();
        // iterate through years; generate subheading for each year
        // output months 
        foreach ($data as $_year => $_months) {
            $output .= "<h2>{$_year}</h2>

            foreach ($_months as $_month => $_entries) {
     hier falsch            echo $gruppe;
     hier falsch:           echo $event_startdate." ".$event_enddate." ". $guest;
            }
            $output .= "</ul>";
        }
   
   

10.01.2018 22:08

2 Jörg Kruse

Du brauchst hier ein fünfdimensionales Array mit folgender Hierarchie:

data -> year -> month -> group -> entry -> field

Entsprechend vier foreach Schleifen zum Auslesen

Ganz wichtig ist hier ein sauberes Einrücken, damit man durch den Code leicht durchsteigen kann :)

Ungetestet (mangels Database), kann also den ein oder anderen Fehler enthalten:

$query = "SELECT id, event_enddate, event_startdate, guest, gruppe FROM tbl_entries ORDER BY gruppe, event_startdate desc";
$result = mysqli_query($conn, $query);
$output = '';
if ($result && $result->num_rows > 0) {
    // initialize array to manage archived events
    $data = array();
    // add each archived entry to $data[] as dimensional array entry
    while ($row = $result->fetch_assoc()) {
        $year = date('Y', strtotime($row['event_startdate']));
        $month = date('F', strtotime($row['event_startdate']));
        $group = $row['gruppe'];
        $data[$year][$month][$group][] = $row;
    }
    $result->free();
    // iterate through years; generate subheading for each year
    // output months
    foreach ($data as $_year => $_months) {
        $output .= "<h2>{$_year}</h2>";
        foreach ($_months as $_month => $_groups) {
            $output .= "<h3>{$_month}</h3>";
            foreach ($_groups as $_group => $_entries) {
                $output .= "<h4>{$_group}</h4>";
                $output .= "<ul>";
                foreach ($_entries as $_entry) {
                    $output .= '<li>'.$_entry['event_startdate']." ".$_entry['event_enddate']." ". $_entry['guest'].'</li>';
                }
                $output .= "</ul>";
            }
        }
    }
    echo $output;
}

10.01.2018 22:45 | geändert: 10.01.2018 22:49

1 Forenmitglied fand diesen Beitrag gut

3 webuser

Danke Jörg, perfekt.
Ein fünffach Array....

11.01.2018 09:43

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]