sql >> Databasteknik >  >> RDS >> Mysql

lägg till flera data i xml-filen med PHP xmlwriter

Ditt problem ligger i frågan:

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

De flesta andra databaser än MySQL skulle avvisa den här frågan, eftersom du grupperar på 2 fält samtidigt som du väljer många fält.
group by year, month kommer bara att visa en enda (slumpmässig) rad från en månad och dölja alla andra.

Lösningen är att släppa group by sats helt och skriv om frågan så här:

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

Anmärkning
Det är konstigt att du inte har en WHERE klausul. Vill du verkligen välja alla artiklar varje gång?
Ett bättre tillvägagångssätt skulle vara att begränsa antalet valda artiklar i frågan med något filter.
Det går alltid snabbare att filtrera i databasen snarare än i php.



  1. How Now() fungerar i PostgreSQL

  2. PHP/MySQL-tidszonsförtydligande

  3. Arkitektur och inställning av minne i PostgreSQL-databaser

  4. mysql-replikering - master till slav