IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Calendrier : événements sur plusieurs jours [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut Calendrier : événements sur plusieurs jours
    Bonjour,

    je travaille sur un calendrier gérant des événements.
    Voici ma table :
    - id_evenement
    - date_debut_evenement (datetime)
    - date_fin_evenement (datetime)
    - libelle_evenement

    Je souhaite afficher une liste des événements en groupant par jour. Par exemple :
    Evénements :
    - libelle_evenement : test 1
    - date_debut_evenement : 12/11/2013 15:00:00
    - date_fin_evenement : 15/11/2013 08:00:00

    - libelle_evenement : test 2
    - date_debut_evenement : 12/11/2013 00:00:00
    - date_fin_evenement : 12/11/2013 00:00:00
    Affichage souhaité
    Mardi 12/11/13
    - test 1
    - test 2
    Mercredi 13/11/13
    - test 1
    Jeudi 14/11/13
    - test 1
    Vendredi 15/11/13
    - test 1

    Or j'ai qu'un enregistrement pour test 1 et test 2. Je ne vois pas comment faire pour afficher comme ci-dessous.
    Est-ce que le travaille est a faire au niveau du php ou de la requête. Je suis vraiment perdu car j'ai déjà faire des variantes en enregistrent autant de fois l'événement que de jours (ex 4 enregistrement pour test 1), mais c'est assez peu modulable même si l'affichage ci-dessus est simple a obtenir.

    Si vous aviez des explications claires avec du code car là je galère et je ne trouve rien dans google :-(

    Merci d'avance à toute personne se sentant l'âme d'un prof ;-)
    Bonne soirée

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $interval = DateInterval::createFromDateString('1 day');
     
     
    // on parcours les données
    while ($row = $sth->fetch(PDO::FETCH_ASSOC))
    	$begin    = new DateTime($row['date_debut_evenement']);
    	$end      = new DateTime($row['date_fin_evenement']);
    	$days     = new DatePeriod($begin, $interval, $end->modify('+1 day'));
    	foreach ($days as $day) {
               // on mets tous les jours dans un tableau
    	   $result[$day->format('Y-m-d')][] = $row['libelle_evenement'];
    	}
    }
     
     
     
    $begin    = new DateTime('2013-11-01');
    $end      = new DateTime('2013-12-01');
    $days     = new DatePeriod($begin, $interval, $end);
     
    // Pour tous les jours
    foreach ($days as $day) {
       echo $day->format('d/m/Y') . '<br/>';
       $jour = $day->format('Y-m-d');
       if (isset($result[$jour])) {
                    // on affiche tous les événements existant pour ce jour
    		foreach ($result[$jour] as $values) {
    			echo $values . '<br/>';
    		}
       }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut suite
    cela semble bien, j'ai juste quelques petits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Severity: Notice
    Message: Undefined offset: 3
    correspondant à la définition de $begin lors que je recup de la bdd.

    => trouvé désolé et en tout cas un gros gros merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2013] créer un même événement sur plusieurs jours différents
    Par Kaylek dans le forum Outlook
    Réponses: 0
    Dernier message: 23/10/2014, 11h23
  2. événement sur plusieurs controles
    Par oussi dans le forum C#
    Réponses: 2
    Dernier message: 10/10/2009, 18h47
  3. [Toutes versions] Moyenne d'un champ sur plusieurs jours
    Par qltmi dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 09/05/2009, 11h07
  4. Groupy by (sur plusieurs jours)
    Par lordover dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/09/2008, 06h11
  5. évènements sur plusieurs boutons crées dynamiquement
    Par Mangacker dans le forum C++Builder
    Réponses: 40
    Dernier message: 01/05/2008, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo