Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fügen Sie mehrere Daten in der XML-Datei mit PHP xmlwriter hinzu

Ihr Problem liegt in der Abfrage:

$sql = "SELECT *,YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTH(FROM_UNIXTIME(timestamp)) AS MONTH 
         FROM ".NEWS_ARTICLES." GROUP BY YEAR, MONTH ORDER BY YEAR DESC, MONTH ";  

Die meisten Datenbanken außer MySQL würden diese Abfrage ablehnen, weil Sie nach 2 Feldern gruppieren, während Sie viele Felder auswählen.
Die group by year, month zeigt nur eine einzelne (zufällige) Zeile eines Monats an und blendet alle anderen aus.

Die Lösung besteht darin, group by zu löschen -Klausel vollständig und schreiben Sie die Abfrage wie folgt um:

$sql = "SELECT *,YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTH(FROM_UNIXTIME(timestamp)) AS MONTH 
         FROM ".NEWS_ARTICLES." ORDER BY YEAR DESC, MONTH ASC";

Bemerkung
Es ist seltsam, dass Sie kein WHERE haben Klausel. Möchten Sie wirklich alle auswählen? Artikel jedes Mal?
Ein besserer Ansatz wäre, die Anzahl der in der Abfrage ausgewählten Artikel durch einen Filter zu begrenzen.
Es ist immer schneller, in der Datenbank zu filtern als in PHP.