Mysql
 sql >> Base de données >  >> RDS >> Mysql

ajouter plusieurs données dans un fichier xml à l'aide de PHP xmlwriter

Votre problème est dans la requête :

$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 ";  

La plupart des bases de données autres que MySQL rejetteraient cette requête, car vous regroupez sur 2 champs tout en sélectionnant de nombreux champs.
Le group by year, month n'affichera qu'une seule ligne (aléatoire) d'un mois et masquera toutes les autres.

La solution est de supprimer le group by clause entièrement et réécrivez la requête comme suit :

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

Remarque
C'est étrange que vous n'ayez pas de WHERE clause. Voulez-vous vraiment sélectionner tous articles à chaque fois ?
Une meilleure approche serait de limiter le nombre d'articles sélectionnés dans la requête par un filtre.
Il est toujours plus rapide de filtrer dans la base de données plutôt qu'en php.