Afficher La date par groupe d'actualités

Henry
Invité n'ayant pas de compte PHPfrance

12 janv. 2009, 19:27

Bonjour à tous,

J'ai actuellement une solution pour ce problème mais le code est infernal. Je souhaite afficher les 25 dernieres actualités. Dans ses 25 actualités il faut les regrouper par date identique puis les afficher par groupe. Exemple :

Lundi 2 janvier 2009

Actu 1
Actu 2
Actu 3
...

Dimanche 1 janvier 2009

Actu 7
Actu 8
..

etc

La récupération ne pose pas problème seule la mise en place de la date et la mise en page sont problèmatiques.

Merci d'avance à tous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 janv. 2009, 20:04

La solution la plus simple pour afficher tes éléments consiste a récupérer ceux-ci triés par date décroissante. Puis, dans une boucle php stocker dans une variable temporaire la valeur de la date de ton premier enregistrement.
A chaque itération il te suffit de vérifier si la date a changé. Si oui, tu affiches le titre (nouvelle date) et tu stoques celle-ci dans ta variable temporaire. Si non, tu affiches simplement ton info sans rien ajouter :)

Quelque chose du genre :

Code : Tout sélectionner

date_temp = '' // variable temporaire TANT QUE il y a des enregistrements à afficher SI date_temp != date_enregistrement AFFICHER titre/date date_temp = date_enregistrement FIN SI AFFICHER enregistrement FIN TANT QUE
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2009, 21:41

Bonne idée, j'essaie et je reviens sur le forum pour la mise en ligne du code.

Par contre comment afficher le date de type Mardi 12 Novembre 2008 a partir de la date récupérée dans la base SQL ?

ViPHP
AB
ViPHP | 5818 Messages

12 janv. 2009, 22:15

Bonne idée, j'essaie et je reviens sur le forum pour la mise en ligne du code.

Par contre comment afficher le date de type Mardi 12 Novembre 2008 a partir de la date récupérée dans la base SQL ?
par exemple
setlocale (LC_TIME, 'fr_FR','fra');
$date = strtotime('2008-11-06 13:24:18');
echo 'date = '.strftime("%A %d %B %Y",$date);
Renseignes-toi sur strftime() et setlocale() pour plus d'info

Invité
Invité n'ayant pas de compte PHPfrance

12 janv. 2009, 22:35

ok merci

je regarde et je reviens pour poster la solution (si j'y arrive bien sur !! :D )