IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Création d'un planning
Options
hellomorld
posté 23 May 2015, 13:26
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 150
Inscrit : 31 Oct 2003
Membre no 11 118



Bonjour,

J'ai une table avec une colonne DATE.
J'aimerai afficher dans une page web un tableau de ce style :

Mois | Lundi | Mardi ....
Janv. | 2, 9,16| 3, 10...

Soit réunir tous les "lundis" de janvier, tous les "mardis" de janvier... pour lesquels il y a un enregistrement.

A savoir mon tableau commence en septembre et se termine en juillet.

Pour l'instant je pars sur une boucle basée sur cette requête :
Code
SELECT jour, idcal FROM calendrier ORDER BY MONTH(jour), WEEKDAY(jour) ';


et j'essaie par php de gérer la construction du tableau (pour l'instant c'est pas bon !).

Code
$mois = 9;
$semaine = 0;
while ($cal=xxx) {
$numjour = date("l", strtotime($cal['jour']))-1;
    if ($numjour == -1) { $numjour= 6;} // pour gérer le décalage entre la fonction mysql qui démarre le lundi et celle de php qui commence le dimanche!
    if ($semaine < $numjour) {
        echo "</td><td>";
            $semaine = $semaine+1;
    }
    if ($semaine == 7) { $semaine = 0; }

    if (date("m", strtotime($cal['jour'])) != $mois ) { // pour gérer le passage de décembre à janvier
        $cpt = $cpt+1;
        if ($cpt == 5){
            $mois = 0;
        }
        while($mois < date("m", strtotime($cal['jour']))) {
            echo "</tr><tr>";
            $mois = $mois+1;
        }
    }

}


Je suis sur la bonne voie ou il y a une méthode plus simple ?

Merci !

Ce message a été modifié par hellomorld - 23 May 2015, 13:27.


--------------------
Go to the top of the page
 
+Quote Post
Bru
posté 23 May 2015, 14:55
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 516
Inscrit : 7 Oct 2001
Membre no 962



As tu essayé un group by ?

Code
select dayofweek(une_date) as JOUR, group_concat(day(une_date) separator ', ') as JOURS
from une_table
where une_date between '2015-05-01' and '2015-05-31'
group by dayofweek(une_date)


Go to the top of the page
 
+Quote Post
hellomorld
posté 23 May 2015, 17:00
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 150
Inscrit : 31 Oct 2003
Membre no 11 118



Citation (Bru @ 23 May 2015, 15:55) *
As tu essayé un group by ?

Code
select dayofweek(une_date) as JOUR, group_concat(day(une_date) separator ', ') as JOURS
from une_table
where une_date between '2015-05-01' and '2015-05-31'
group by dayofweek(une_date)


Avec une boucle pour changer de mois, ça semble parfait, merci !


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 24th April 2024 - 00:35