Afficher news programmer par date

Eléphanteau du PHP | 13 Messages

29 août 2012, 10:50

Bonjour,
Voila, j'ai un petit problème avec une requete sql.

J'ai un système de news, qui présente plusieurs type de contenu (audio, video, etc..). Pour chaque news, il y a une date de publication programmé.

Je cherche donc a afficher la dernière news de chaque contenu inférieur ou égale à aujourd'hui. Pour cela, je cherche a formuler une requete de ce style :
-sélectionne dans la table news,
-la date de publication la plus haute
-inférieur ou égale à aujourd'hui
-de chaque type de news
J'arrive a afficher la dernière news de chaque publication, mais pas lorsque je les regroupes par type de news. J'ai tenté de nombreuses requetes différentes, mais souvent il y a un bug une partie des (ou une) réponse(s) est correcte et le reste est érroné .

Le fichier sql sur lequel je test, ce trouve ici : http://pastebin.com/0Z3sbBTD
Normalement voilà les news qui devrait être sélectionner (pour les datepublication du: 2012-08-23 au 2012-03-15):

Code : Tout sélectionner

id typedenews datepublication titre 111 mot 2012-08-23 mot a afficher 112 expression 2012-08-22 proverbe a afficher 108 video 2012-05-01 video a afficher 89 citation 2012-04-10 citation a afficher 12 evenement 2012-04-09 evenement a afficher 28 audio 2012-03-15 audio a afficher
Merci d'avance pour votre aide,
Cordialement

ViPHP
ViPHP | 2577 Messages

29 août 2012, 11:59

créer une vue avec la requete :
select typedenews,max(datepublication) from news where datepublication< now() group by typedenews
et fait une jointure sur la table news et cette vue

Par contre, s'il y a un problème si 2 news du même type le même jour, mais tu peux régler ca à la lecture en php.