Voici le code source :
<meta http-equiv="content-type" content="text/html; charset=Windows-1252">
<?php
/// on récupère le mois du jour
$moisjour = date("n");
$annee = date("Y");
$semaine = date("W");
/// on donne les variables pour l'ecriture en toute lettre
function mois($moisjour){
if ($moisjour == 1){
$moisjour_lettres = "Janv.";}
elseif ($moisjour == 2){
$moisjour_lettres = "Févr.";}
elseif ($moisjour == 3){
$moisjour_lettres = "Mars";}
elseif ($moisjour == 4){
$moisjour_lettres = "Avr.";}
elseif ($moisjour == 5){
$moisjour_lettres = "Mai";}
elseif ($moisjour == 6){
$moisjour_lettres = "Juin";}
elseif ($moisjour == 7){
$moisjour_lettres = "Juil.";}
elseif ($moisjour == 8){
$moisjour_lettres = "Août";}
elseif ($moisjour == 9){
$moisjour_lettres = "Sept.";}
elseif ($moisjour == 10){
$moisjour_lettres = "Oct.";}
elseif ($moisjour == 11){
$moisjour_lettres = "Nov.";}
elseif ($moisjour == 12){
$moisjour_lettres = "Déc.";}
return($moisjour_lettres);
}
$i = 0;
while($i < 12){
$i2 = 0;
if($moisjour == 13){
$annee = $annee+1;
$moisjour = 1;}
if($i%2 == 0){
$fond = 'images/calendar_fd.jpg';
$color = "#B3D8E8";
}
else{
$fond = "images/calendar_fd2.jpg";
$color = "#DEECF5";
}
$moisjour_lettres = mois($moisjour);
/// Début de la boucle pour le tableau
echo '<table cellpadding="0" cellspacing="0" bordercolordark="white" bordercolorlight="black" align="center">
<tr>';
/// Nom du mois
echo"
<!-- DEBUT DU MOIS ".strtoupper($moisjour_lettres)." -->
<td width=\"30\" height=\"52\" style=\"background-image:url('images/calendar.gif'); background-repeat:no-repeat; background-attachment:scroll;\" valign=\"top\">
<p style=\"margin-top:17px; margin-bottom:0px;\" align=\"center\"><font face=\"Arial\"><span style=\"font-size:7pt;\"><b>".$moisjour_lettres."</b></span></font></p>
<p style=\"margin-top:0; margin-bottom:0;\" align=\"center\"><font face=\"Arial\"><span style=\"font-size:7pt;\">".$annee."</span></font></p>
</td>
<!-- FIN DU TITRE DE ".strtoupper($moisjour_lettres)."-->";
/// semaines
echo"
<td width=\"625\" height=\"52\" bgcolor=\"".$color."\" style=\"background-image:url('".$fond."'); background-repeat:no-repeat; border-bottom-width:2px; border-left-width:2px; border-bottom-color:white; border-left-color:white; border-bottom-style:solid; border-left-style:solid;\">
<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\">
<tr>
";
while($i2 < 5){
if($i2 == 0){
/// savoir quel est le premier jour de la semaine
$prem_j_sem = date("w", mktime(0, 0, 0, $moisjour, 1, $annee));
if($prem_j_sem != 6){
/// si le premier du mois ne tombe pas un samedi
$dern_j_mois_prec = date("d",mktime(0, 0, 0, $moisjour-1, 0, $annee));
$numero_du_jour_prec = date("w",mktime(0, 0, 0, $moisjour-1, $dern_j_mois_prec, $annee));
$ajout = -1;
/// si on est dans la premiere colonne
if ($prem_j_sem == 0){
$ajout = 6;
}
$prem_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour-1, $dern_j_mois_prec-$numero_du_jour_prec+$ajout, $annee));
$date = explode("-", $prem_j_sem);
$jour = $date[0];
$mois = $date[1];
$annee = $date[2];
$dern_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour-1, 7+$prem_j_sem, $annee));
$date_d = explode("-", $dern_j_sem);
$jour_d = $date_d[0];
$mois_d = $date_d[1];
if($mois_d == 1){
$annee_d = $date_d[2]+1;
}
else{
$annee_d = $date_d[2];
}
}
/// si le prem jour de la semaine est bien un samedi
else{
$prem_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour, 1, $annee));
$date = explode("-", $prem_j_sem);
$jour = $date[0];
$mois = $date[1];
$annee = $date[2];
$dern_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour, 7+$prem_j_sem, $annee));
$date_d = explode("-", $dern_j_sem);
$jour_d = $date_d[0];
$mois_d = $date_d[1];
$annee_d = $date_d[2];
}
$i2=$i2+1;
}
/// si on est pas dans la premiere colonne
else {
$prem_j_sem = date("d-n-Y", mktime(0, 0, 0, $mois_d, $jour_d, $annee_d));
$date = explode("-", $prem_j_sem);
$jour = $date[0];
$mois = $date[1];
$annee = $date[2];
$dern_j_sem = date("d-n-Y", mktime(0, 0, 0, $moisjour, $jour+7, $annee));
$date_d = explode("-", $dern_j_sem);
$jour_d = $date_d[0];
$mois_d = $date_d[1];
$annee_d = $date_d[2];
$i2=$i2+1;
}
echo"
<!-- SEMAINE ".$i2." DE ".strtoupper($moisjour_lettres)." -->
<td width=\"125\" valign=\"top\"";
if($i2 != 0){
echo "style=\"border-left-width:1px; border-left-color:white; border-left-style:solid;\"";
}
echo ">";
/// si on est sur la dernier colonne et que le dernier mois de la semaine est identique tout le long de la derniere semaine
if($i2 == 5 AND $mois == $mois_d){
echo "<p align=\"center\" style=\"margin-top:5; margin-bottom:5;\"><font face=\"Arial\"><span style=\"font-size:8pt;\">Du ".$jour." ".mois($mois)." au ".$jour_d." ".mois($mois_d)."</span></font></p>";
}
/// Si on est sur la dern colonne et que le dernier jour est un premier
elseif($i2 == 5 AND $jour_d == 1){
echo "<p align=\"center\" style=\"margin-top:5; margin-bottom:5;\"><font face=\"Arial\"><span style=\"font-size:8pt;\">Du ".$jour." ".mois($mois)." au ".$jour_d." ".mois($mois_d)."</span></font></p>";
}
elseif($i2 < 5){
echo "<p align=\"center\" style=\"margin-top:5; margin-bottom:5;\"><font face=\"Arial\"><span style=\"font-size:8pt;\">Du ".$jour." ".mois($mois)." au ".$jour_d." ".mois($mois_d)."</span></font></p>";
}
else {
echo "<p align=\"center\" style=\"margin-top:5; margin-bottom:5;\"><font face=\"Arial\"><span style=\"font-size:8pt;\"> </span></font></p>";
}
///// connaitre la disponibilité
if($i2 < 5 OR $i2 == 5 AND $mois == $mois_d OR $i2 == 5 AND $jour_d == 1){
include("include/connect.php");
MYSQL_CONNECT($serveur,$utilisateur) or die ("Connexion impossible");
MYSQL_SELECT_DB($db) or die ("Connexion à la base $db impossible");
$jour = array(
date("d-m-Y", mktime(0, 0, 0, $mois, $jour, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+1, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+2, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+3, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+4, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+5, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+6, $annee)),
date("d-m-Y", mktime(0, 0, 0, $mois, $jour+7, $annee))
);
$i_j = 0 ;
$nb_total = 0;
while ($i_j <= 6){
$sql = mysql_query("SELECT id FROM reservations WHERE date = '$jour[$i_j]'");
$nb = mysql_num_rows($sql);
$nb_total = $nb_total + $nb;
$i_j = $i_j + 1;
}
/// si il n'y a aucun jour de reservé dans la semaine
if($nb_total == 0){
echo "
<p align=\"center\" style=\"margin-top:0; margin-bottom:0;\"><img src=\"images/ok.gif\" alt=\"Disponible\" width=\"15\" height=\"15\" border=\"0\"></p>
";
}
/// si la semaine est complete
elseif($nb_total == 7){
echo "
<p align=\"center\" style=\"margin-top:0; margin-bottom:0;\"><img src=\"images/reserve.gif\" alt=\"Complet\" width=\"15\" height=\"15\" border=\"0\"></p>
";
}
/// sinon on affiche les jours de disponibles
else{
echo "
<p align=\"center\" style=\"margin-top:5; margin-bottom:5;\"><font face=\"Arial\"><span style=\"font-size:8pt;\"><b>
";
$i_j_dispo = 0;
$total = 0;
while ($i_j_dispo < 7){
$sql = mysql_query("SELECT id FROM reservations WHERE date = '$jour[$i_j_dispo]'");
$nb_du_j = mysql_num_rows($sql);
if($nb_du_j == 0){
$date_dispo = explode("-", $jour[$i_j_dispo]);
$date_dispo = $date_dispo[0];
$total = $total + 1;
if($total > 1){
echo ", ";
}
echo $date_dispo;
}
$i_j_dispo = $i_j_dispo + 1;
}
echo "
</b></span></font></p>
";
}
}
/////
echo "</td>";
}
echo"
</tr>
</table>";
//// fin du code
echo "</td>
</tr>
</table>";
$moisjour = $moisjour + 1;
$i = $i +1;
$semaine = $semaine+1;
}
et les fichiers :