Frage

Hier sind meine Daten:

id date  
1 2009-01-01 10:15:23  
2 2009-01-01 13:21:29  
3 2009-01-02 01:03:13  
4 2009-01-03 12:20:19  
5 2009-01-03 13:01:06 

Was ich möchte, ist tun Gruppe von jedem Datum und dann unter jedem Zeitpunkt die ID-Nummern aufzulisten. Soll ich die unterschiedlichen Datumswerte bekommen und dann durch sie cycling die Einträge zu erhalten, die zu dem Zeitpunkt fallen? ist dies effizient?

so meine Ausgabe aussehen würde:

2009-01-01  
1  
2   
2009-01-02  
3  
2009-01-03  
4  
5  
War es hilfreich?

Lösung

$query = "SELECT DATE(date) as mydate, id FROM your_data_table ORDER BY mydate, id";
$result = $pdo->query($query);

$oldDate = false;
while ( list($date, $id) = $result->fetch(PDO::FETCH_NUM) ) {
    if ( $oldDate != $date ) {
        echo "$date\n$id\n";
        $oldDate = $date;
    } else {
        echo "$id\n";
    }
}

Statt es in mehreren Abfragen zu tun, holen Sie einfach alle Daten auf einmal. Wenn Sie nur ein paar Tage, müssen dann setzen Sie nur eine WHERE Klausel vor dem ORDER BY.

Andere Tipps

Ihre gespeicherten Daten haben Zeitinformation (die Art der Säule ist DATETIME- oder einem Zeitstempel), um durch eine Gruppe zu tun, müssen Sie nur das Datum Teil Ihrer Zeitspanne extrahieren, können Sie die DATE () Funktion

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top