Calendrier en PHP avec fonction de réservation
Bonjour tout le monde.
J'ai un petit problème avec une fonction PHP. J'ai fait un calendrier en php qui fonctionne très bien. Je cherche maintenant à colorier d'une certaine couleur les cases de mon calendrier, correspondant a des valeurs venant d'une base de données. Ce système me permettrait d'afficher un jour réservé ou non en fonction de la couleur...
Voici donc mon code :
Code:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<?
include("../include/mysql_connect.php");
extract($_GET,EXTR_PREFIX_ALL,'g');
$req = mysql_query("SELECT jour FROM c_calendrier WHERE id_cat='$g_id' AND mois='$g_m' AND annee='$g_a'");
//fonction pour le calendrier
function DaysInMonth($mois,$an){
if($mois==2)
if($an%4) return 28;
elseif($an%100) return 29;
elseif($an%1000) return 28;
else return 29;
elseif(($mois==4)||($mois==6)
||($mois==9)||($mois==11)) return 30;
return 31; }
//fonction pour colorier les cases réservées
function color($courant){
while($data = mysql_fetch_array($req)){
if($data['jour'] == $courant){return "bgcolor='#D6D6D6'";}
}
return "bgcolor='#FF0000'";
} ?>
<?
if($m=="") $m = date("n");
if($a=="") $a = date("Y");
$mnom = Array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$dayone = date("w",mktime(0,0,0,$m,1,$a));
if($dayone==0) $dayone=7;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
<div id="base">
<div id="Titre"><img src="images/titres/annonces_cp.jpg" width="775" height="42" /></div><br /><br /><br /><br /><br /><br /><br />
<div align="center" class="normal">
<? for($i=$a-5;$i<=$a+5;$i++) {?>
<a href="<? echo "index.php?page=hotels_cp_c&id=$g_id&m=".$m."&a=".$i; ?>">
<? echo $i; ?></a>
<? } ?>
<br><br>
<font size=4><? echo $mnom[$m]." ".$a; ?></font>
<br><br>
<table width="50%">
<tr bgcolor="#0033FF" class="blanc">
<th>Lun</th><th>Mar</th><th>Mer</th><th>Jeu</th><th>Ven</th><th>Sam</th><th>Dim</th>
<tr><th></th></tr>
<? for($i=1;$i<=42;$i++){
if($i%7 == 1) { ?></tr><tr><? }
if(($i<daysInMonth($m,$a)+$dayone) && ($i>=$dayone)){ ?>
<th <? color($i-$dayone+1) ?>><? echo $i-$dayone+1; ?></th>
<? } else { ?>
<th bgcolor="#F2F2F2"> </th>
<? }
} ?>
</table><br />
<? for($i=1;$i<=12;$i++) { ?>
<a href="<? echo "index.php?page=hotels_cp_c&id=$g_id&m=".$i."&a=".$a; ?>">
<? echo substr($mnom[$i],0,4); ?></a>
<? } ?>
</div>
</div>
</body>
</html> |
J'ai une erreur php style : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/fcaa1e88f1b09bc2eae2b0158058dc27/web/membres/annonces/compl/hotels_cp_c.php on line 17, correspondant à la ligne ou je fait le "while dans ma fonction color"
Je ne comprends cependant pas cette erreur, car j'ai refait le même while pour afficher les valeurs de ma DB en dessous du calendrier, et elles s'affichent correctement...
Si vous avez des problèmes pour accéder faites moi signe, mais ça devrait jouer...
Merci d'avance pour votre aide !