Bonsoir, je suis en train de faire un calendrier mensuel pour prise de rendez vous, et je rencontre un problème sur la façon de faire !
Voila je présente le calendrier du mois en cours avec une colonne date, horaire, et les lignes dates sont remplis automatiquement par les jours du mois.
avec ce script :
ainsi j'ai la date de chaque jour, et à coté j'ai mis un bouton 'insérer un rdv' qui permet à l'utilisateur de rentrer le rdv pour le jour sélectionner, voici ainsi ma table sql nommé 'planning' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 </tr> <?php for ($i = 1; $i <= date('t'); $i++) { ?> <tr> <td></td> <td><?php $date = date("m-Y"); $lg_chaine = strlen($i); if ($lg_chaine == 1){ $i = '0'.$i; } echo $i.'-'.$date.'<br/>'; ?></td>
- id (auto-incrémenté dans la table)
- date (champ date pour la date du rdv)
- horaire_debut (heure du debut du rdv champ time)
- horaire_fin (heure de fin du rdv)
- nom (l'id de la personne issu d'une autre table)
L'insertion fonctionne bien, mais le problème réside dans l'affichage du planning, en effet j'ai crée une fonction PHP qui m'affiche les données issu de ma table planning d’après la date passé en paramétre et le type de valeur souhaité en retour, mon code :
et ensuite dans le tableau j'appel les fonctions pour m'afficher les resultats (un peu lourd je sais)
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 function afficher($param1, $col){ if ($col == 'PERSONNE'){ global $formation; // variable globale $query_afficher = "SELECT CONCAT(personnels.pers_nom, ' ' ,personnels.pers_prenom) AS name FROM planning, personnels WHERE planning.nom = personnels.id_pers AND DATE_FORMAT(planning.date,'%d-%m-%Y')='$param1'"; $afficher = mysql_query($query_afficher, $formation) or die(mysql_error()); $row_afficher = mysql_fetch_assoc($afficher); $resultat = $row_afficher['name']; return $resultat; }elseif ($col == 'HEURE'){ global $formation; // variable globale $query_afficher = "SELECT CONCAT(DATE_FORMAT(h_debut, '%H:%i'),' a ',DATE_FORMAT(h_fin, '%H:%i')) AS horaire FROM planning WHERE DATE_FORMAT(planning.date,'%d-%m-%Y')='$param1'"; $afficher = mysql_query($query_afficher, $formation) or die(mysql_error()); $row_afficher = mysql_fetch_assoc($afficher); $resultat = $row_afficher['horaire']; return $resultat; } }
Le problème réside dans le fait que si par exemple j'ai deux rendez vous le même jour, je n'ai que le dernier qui s'affichera dans ma ligne du jour concerné !
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 <table id='liste'> <tr> <td><div align="center"><h9>Date</h9></div></td> <td><div align="center"><h9>Heure</h9></div></td> <td><div align="center"><h9>Nom et prenom</h9></div></td> </tr> <?php for ($i = 1; $i <= date('t'); $i++) { ?> <tr> <td></td> <td><?php $date = date("m-Y"); $lg_chaine = strlen($i); if ($lg_chaine == 1){ $i = '0'.$i; } echo $i.'-'.$date.'<br/>'; ?></td> <td><center><?php echo afficher($i.'-'.$date, 'HEURE');?></center></td> <td><center><?php echo afficher($i.'-'.$date, 'PERSONNE');?></center></td> </tr> <?php } ?> </table>
Il faudrait que j'ai crée une seconde ligne si un deuxième rdv le même jour !!
(j'aurais pu afficher simplement ma requête sql planning avec les rdv saisis mais le soucis est que je n'aurais pas eu tous les jours du mois, alors que l'utilisateur souhaite les avoirs !)
comment faire pour bien faire ?
Partager