Affichage de date en listing détaillé

Damien200
Invité n'ayant pas de compte PHPfrance

23 janv. 2009, 13:10

Bonjour,
Je souhaiterais afficher des date en listing. Actuellement j'ai

02/10/2008 LYON (69) Le Double Six + Sterennodrahc
03/10/2008 REIGNIER (74) Perce Oreille
06/11/2008 TOULOUSE (31) Le Cri de la Mouette + Space Jahourt
08/11/2008 PAVIE (32) La Feniere
09/11/2008 LAUZERTE (82) Le Puits de Jour
14/11/2008 MARSEILLE (13) L'intermédiaire
04/12/2008 LILLE (59) Le Biplan
05/12/2008 HARVENG (BE) Le Salon de la Place + Black Sheep
06/12/2008 MOUSCRON (BE) El bar + Mister Jingle + Skallog's

et je voudrais que les mois s'affiche en début de chaque liste de date :

Octobre
02/10/2008 LYON (69) Le Double Six + Sterennodrahc
03/10/2008 REIGNIER (74) Perce Oreille

Novembre
06/11/2008 TOULOUSE (31) Le Cri de la Mouette + Space Jahourt
08/11/2008 PAVIE (32) La Feniere
09/11/2008 LAUZERTE (82) Le Puits de Jour
14/11/2008 MARSEILLE (13) L'intermédiaire

Décembre
04/12/2008 LILLE (59) Le Biplan
05/12/2008 HARVENG (BE) Le Salon de la Place + Black Sheep
06/12/2008 MOUSCRON (BE) El bar + Mister Jingle + Skallog's

Je recupère tout ça avec une requète sql, je ne sais pas comment m'y prendre
ni qu'elle fonction rechercher. Merci à tous de votre aide.

Damien

ViPHP
ViPHP | 3607 Messages

23 janv. 2009, 13:56

C'est assez facile ;)
Dans le principe, il faut que tu stockes le mois précédent dans une variable temporaire, pour pouvoir vérifier si on a changé de mois ou non, ça donne ça:

Code : Tout sélectionner

var lastMois=null; PourChaque entrée du tableau de donnée: Si lastMois!=moisEnCours Alors Affichage du nom du mois; lastMois=moisEnCours; FinSi Affichage de l'évènement; FinPourChaque
Voilou, dis-moi si tu comprends pas tout ;)

Invité
Invité n'ayant pas de compte PHPfrance

23 janv. 2009, 15:10

Merci merci !
heu... Je t'ai simplifié au max mon code qui affiche le résultat de la requête.
il faut faire un tableau c'est ça ?? Peux-tu me remettre ton explicaition dans mon code ?
En fait, j'aurais du poster dans "débutant php" je crois... Sorry

while( $contenu2 = mysql_fetch_array ($monResultat2))
{
echo"$contenu2['datec'] $contenu2['detail'] ";
}

ViPHP
ViPHP | 3607 Messages

23 janv. 2009, 15:20

Alors en fait il faut extraire le mois de contenu2['datec']...

Bon vu que ta date est en français, on va bricoler un poil:
<?php

function extraitMois($date){
    $temp=explode('/',$date);
    return (int)$temp[1];
}

$arrayMois=array(1=>'janvier','février',...);

$lastMois=null;

while( $contenu2 = mysql_fetch_array ($monResultat2))
{
    $currentMois=extraitMois($contenu2['datec']);

    //si on change de mois, alors on l'affiche
    if($lastMois!==$currentMois){
        
        //affichage ou non de la balise de fin de paragraphe
        // si on est au premier mois, on a pas besoin de la refermer
        if($lastMois!==null){
            
            echo '</p>';
        } 
  
        echo '<h2>'.$arrayMois[$currentMois].'</h2>';
     
        // ouverture de la balise <p> poru les évènement
        echo '<p>';
    }

    //et on affiche le contenu
    echo $contenu2['datec'].': '.$contenu2['detail'].'<br />';
} 
Voilà pour le principe, à toi d'adapter... ;)

Damien200
Invité n'ayant pas de compte PHPfrance

23 janv. 2009, 15:41

Oué ! mille merci !!!
Effectivement, c'est plus simple que je ne le pensais

J'ai tout compris :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2009, 17:44

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer