j'ai recupéré un planning sympa sur ce forum mais moi j'affiche mes rendez-vous a partir d'une reqête qui va les chercher ds ma base.
Et maintenant, je souhaite ajouter les absences.
J'ai ecrit ma requete mais j'arrive pas afficher !
Quelqu'un pourrait-il m'aider pour le faire?
Il faudrait afficher les absences en meme temps que les rendez-vous ds le planning d'une autre couleur
Merci..
Voila mon code :
<table width="100%" border="6" cellpadding="5" cellspacing="2" table background="images/fond2.gif">
<tr><th width="11%">
<?
//Fonction qui cherche si un créneau $c est placé dans une plage occupée par des créneaux et ce pour le même jour $j
function occupé($c,$j){
//Pour accèder au tableau
global $durées_RDV;
//Cherche le premier créneau occupé ce jour $j où $c est inclu : dans ce cas retourne vrai
for ($x=0; $x < $c; $x++) if ($durées_RDV[$x][$j]>1 && $c < $x + $durées_RDV[$x][$j]) return true;
//si aucun créneau occupé trouvé retourne faux
return false;
}
//La base de données
$jour=Array(0=>"Lundi", 1=>"Mardi", 2=>"Mercredi", 3=>"Jeudi", 4=>"Vendredi");
//initialiser les RDV et leurs durées (à rien et 0 heure par défaut)
for ($c=0; $c < 10; $c++) for ($j=0; $j <5; $j++) $RDV [$c][$j] = "*";
for ($c=0; $c < 10; $c++) for ($j=0; $j <5; $j++) $durées_RDV [$c][$j] = 0;
//On affiche l'entête du tableau (Les jours)
for ($j=0; $j<5; $j++) {
?>
<th width="18%" class="colonnetableau">
<?
// affichage du jour et de la date dans les en-têtes des colonnes
$aWeek=$vsem; $aYear=$van;
for ($aDay=0;$aDay<5;$aDay++) {
$adate=datefromweeknr($aYear, $aWeek, $aDay+1);
if ($j==$aDay) {
echo "$jour[$j]<br>";
$datentete = date('Y-m-d',$adate);
echo ' '.date('d-m-Y',$adate).'<br>'; ?> </th> <?
require('config/myConnexion.php');
require('config/connect.php');
// requête pour la récupération des RDV
$query2 = 'SELECT libelle_rdv as lib, heure_deb, heure_fin, avoir.date
FROM rendezvous, avoir
WHERE avoir.code_rdv=rendezvous.code_rdv
AND code_util="'.$vnom.'"
AND date="'.$datentete.'"';
$result2 = mysql_query ($query2) or die (" La requête pour la recherche des rendez-vous a échouée ");
while ($row_Resul2=mysql_fetch_assoc($result2)) {
$c = $row_Resul2['heure_deb']-8 ;
$j = $aDay;
$RDV [$c][$j] = $row_Resul2['lib'];
$durées_RDV [$c][$j] = $row_Resul2['heure_fin']-$row_Resul2['heure_deb']; }
mysql_close();
require('config/myConnexion.php');
require('config/connect.php');
// requête pour la récupération des ABS
$query3 = 'SELECT motif as lib, duree, etre.date
FROM absence, etre WHERE etre.code_abs=absence.code_abs
AND code_util="'.$vnom.'"
AND date="'.$datentete.'"';
$result3 = mysql_query ($query3) or die (" La requête pour la recherche des absences a échouée ");
while ($row_Resul3=mysql_fetch_assoc($result3)) {
$RDV [$c][$j] = $row_Resul3['lib'];
$j = $aDay;
if ($row_Resul3['duree'] == "Matinée") { $c = 0 ; $durées_RDV [$c][$j] = 5;}
if ($row_Resul3['duree'] == "Après-midi") { $c = 5 ; $durées_RDV [$c][$j] = 5;}
if ($row_Resul3['duree'] == "Journée") { $c = 0 ; $durées_RDV [$c][$j] = 10;}
}
mysql_close();
}
}
}
?>
</tr>
<?
//Ensuite on affiche les 8 lignes correspondants aux créneaux allant de 8H à 18H
//Les 8 crénneau peuvent être calculés automatiquement à partir de 8H
$hd = 8; //Heure de départ des créneaux d'un jour
for ($c=0; $c < 10 ; $c++){
//La première colonne de la ligne contient le crénneau calculé à partir de $hd
?>
<tr>
<th>
<?
//La durée affichée d'un crénneau est toujour 1 heure
$hf = $hd +1; //par exemple $hf contient 9H si $hd contient 8H
echo "$hd"."H"." à "."$hf"."H";
//Préparer le crénneau suivant
$hd += 1;
//Correction pour le passage de midi à l'après-midi
//if ($hf == 12) $hd = 14;
//La deuxieme partie de la ligne affichée contient les RDV des 5 jours
for ($j=0; $j < 5 ; $j++){
//Attention: ne pas créer de céllule si le crénneau précédent l'a déjà consommée à cause d'une durée qui dépasse 1 heure
//$c : le n° du crénneau et $j celui du jour du RDV
if (!occupé($c,$j) ) { //voir la fonction occupé() qui determine si une céllule peut être créée
//la céllule qui s'affiche peut consommer plusieurs lignes selon la durée du RDV planifié (c'est ROWSPAN qui s'en charge)
//BGCOLOR permet de peindre le fond si le RDV existe
//COLOR change de couleur de texte si le RDV existe
?>
<td valign="middle" align="center" width="18%" rowspan=<? echo $durées_RDV[$c][$j]>0?$durées_RDV[$c][$j]:""; ?>
bgcolor="<? echo $durées_RDV[$c][$j]>0?"silver":""; ?>" style="color:<? echo $RDV[$c][$j]=="*"?"":"purple"; ?>">
<?
echo $RDV[$c][$j];
}//fin if
}//fin for $j
}//fin for $c
?>
</table>