Problème sur Calendrier
Hors lignePiep14 Le 14/04/2006 à 09:33 Profil de Piep14 Configuration de Piep14

Bonjour le forum, j'ai un ptit problème dans la modification d'un calendrier.
J'ai pour le moment :



<?php
$reussi
= 0;
$errmsg = "";

// Creation de la date si pas de date
if (!isset($_GET['m']) || !isset($_GET['a']) || !is_numeric($_GET['m']) || !is_numeric($_GET['a'])) {
     $m = date("m");
     $a = date("Y");
}
else
{
     $m = $_GET['m'];
     $a = $_GET['a'];
}

// Recupere les infos sur la date
$timestamp = mktime(0, 0, 0, $m, 1, $a);
$mois = date("m", $timestamp);
$annee = date("Y", $timestamp);
$dmois = date("w", $timestamp);
$fmois = date("t", $timestamp);

// Mois suivant, precedant, ...
$sui_mois = $m + 1;
$pre_mois = $m - 1;
$sui_annee = $a;
$pre_annee = $a;
if (
$m == 12) {
     $sui_mois = 1;
     $sui_annee = $a + 1;}
if (
$m == 1) {
     $pre_mois = 12;
     $pre_annee = $a - 1;}



// Calendrier
echo "<p align=center><table width=100% cellpadding=0 cellspacing=0 border=0><td width=50% valign=top>";
echo
"<table border=1 bordercolor=#cccfff align=center cellspacing=0 cellpadding=0><td>";
echo
"<table border=0 width=100% cellpadding=2 cellspacing=0><td align=left bgcolor=#5A2AC6><a href=\"?a=".$pre_annee."&m=".$pre_mois."&numero=".$_GET['numero']."\"><img src=\"images/gauche1.gif\" border=\"0\"></a></td><td align=center bgcolor=#5A2AC6><font face=verdana size=2 color=#FFD700><b> ".$tmois[($mois - 1)]." ". $a ." </b></font></td><td align=right bgcolor=#5A2AC6><a href=\"?a=".$sui_annee."&m=".$sui_mois."&numero=".$_GET['numero']."\"><img src=\"images/droite1.gif\" border=\"0\"></a></td></table>";
echo
"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" align=\"center\">\n";
?>

<?php
echo "<tr>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Di</font></b></p></td>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Lu</font></b></p></td>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Ma</font></b></p></td>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Me</font></b></p></td>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Je</font></b></p></td>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Ve</font></b></p></td>";
echo
"<td bgcolor=#5A2AC6><p align=\"center\"><b><font color=#ffffff size=2>Sa</font></b></p></td>";
echo
"</tr>\n";
$calen_jour = - $dmois;
for (
$i = 0; $i < 7; $i++)
{
     echo "<tr>";
     for ($ii = 0; $ii < 7; $ii++)
     {
          $calen_jour ++;
          if (checkdate($mois, $calen_jour, $annee) == true && $calen_jour <= $fmois)
          {
               isset($j) && $j == $calen_jour ? $style = " class=\"today\"" : $style = " class=\"oday\"";
               $q = mysql_query("SELECT COUNT(*) AS num FROM calendrier WHERE DAYOFMONTH(date) = $calen_jour AND MONTH(date) = $mois AND YEAR(date) = $annee AND numero='$_GET[numero]'");
               $r = mysql_fetch_array($q);


               $req_sem = mysql_query("SELECT COUNT(*) AS num2 FROM `periode` WHERE DAYOFMONTH(date) = $calen_jour AND MONTH(date) = $mois AND YEAR(date) = $annee");
               $res_sem = mysql_fetch_array($req_sem);

               if ($r["num"] > 0)
               {
                    echo "<td bgcolor='black'><p align=\"center\"><b><font size=2>";
                    if ($calen_jour == date("d")  && $mois == date("m") && $annee == date("Y"))
                         echo "<font color='white' size='3'><b><u>".$calen_jour."</u></b></a></font></b></p></td>";
                    else
                        
echo "<font color='white' size='3'><b>".$calen_jour."</b></a></font></b></p></td>";    
              
}
               else
               {
                    if ($res_sem["num2"] > 0)
                    {
                         $req_sem2 = mysql_query("SELECT * FROM `periode` WHERE DAYOFMONTH(date) = $calen_jour AND MONTH(date) = $mois AND YEAR(date) = $annee");
                         $res_sem2 = mysql_fetch_array($req_sem2);
                         if($res_sem2['statut']=="1")
                              $style_sem = "green";
                         else if($res_sem2['statut']=="2")
                              $style_sem = "yellow";
                         else if($res_sem2['statut']=="3")
                              $style_sem = "red";
                         else if($res_sem2['statut']=="4")
                              $style_sem = "purple";

                         echo "<td bgcolor='".$style_sem."'><p align=\"center\"><font size=2>";
                         if ($calen_jour == date("d")  && $mois == date("m") && $annee == date("Y"))
                              echo "<font color='black' size='3'><b><u>".$calen_jour."</u></b></font></p></td>";
                         else
                              echo "".$calen_jour."</font></p></td>";
                    }
                    else
                    
{
                         echo "<td bgcolor='white'><p align=\"center\"><font size=2>";
                         if ($calen_jour == date("d")  && $mois == date("m") && $annee == date("Y"))
                              echo "<font color='black' size='3'><b><u>".$calen_jour."</u></b></font></p></td>";
                         else
                              echo "".$calen_jour."</font></p></td>";
                    }
               }
               mysql_free_result($q);
          }
          else
          
{
               echo "<td class=\"oday\"><p>&nbsp;</p></td>";
          }
     }
     echo "</tr>\n";
     if ($calen_jour >= $fmois)
          $i = 7;
}
echo
"</table></td></table>\n";
?>



Pour le moment, le calendrier s'affiche très bien du dimanche au samedi comme vous pouvez le voir ici :
http://www.appartement-saintmalo.com/calendrier-saint-malo.php?numero=1

Mais, j'aimerais rajouter le numéro des semaines devant chaque ligne et aussi afficher le calendrier du samedi au samedi. Je cherche depuis plusieurs jours mais en vain.

Si vous auriez des petites pistes pour m'aider.

Merci de votre aide ...
Hors ligneAnthony Le 15/04/2006 à 17:03 Profil de Anthony Configuration de Anthony

Fou du volant
Salut,

pour l'affichage d'un truc supplémentaire genre numéro de la semaine, tu peux regarder ici :

for ($i = 0; $i < 7; $i++)
{
     echo "<tr>";

juste après le <tr> tu rajoutes un <td> (faudra le rajouter pour tout le tableau) et tu mets le numéro de la semaine (heu par contre tu veux mettre le numéro de la semaine pour le mois en cours ou depuis le début de l'année ? (car là ça change tout sinon...))

Bref sinon ensuite pour afficher du samedi au samedi, tu as essayé d'incrémenter ton calenjour (de 1 à 6) ? juste avant de faire tes deux boucles ? si tu changes le début et fin du $i (genre un for($i=3;$i<10;$i++)) ça change quelque chose ?
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels