Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
Viva
# 01 May 2008 - 13:05:30
Citer
49 Posts
bonjour à tous,
je vient demander de l'aide pour la création d'un calendrier.
voila mon souci j'ai réussi a faire mon calendrier mais j'ai un petit problème
quand j'arrive sur la page d'index ( j'arrive sur le site ) je voit l'année mais pas le mois mais si je clique sur les onglets mois suivant ou mois précédent le mois est bien la.

Voici mon code :

<?php

$liste_mois = Array("","Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");


function afficherCalendrier($mois = 0 , $annee = 0)

{
global $liste_mois;
if ($mois == 0)
{
$mois = date('m');
}
if ($annee == 0)
{
$annee = date('Y');
}

if ($mois <= 12 AND $mois >=1)
{
if (strlen($annee) == 4)
{
$jours = Array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');

$time_1er = mktime(0,0,0,$mois,1,$annee);
$jour_1er = date('D',$time_1er);
$nbrJours = date('t',$time_1er);

echo"<div style=\"width:191px; text-align:center; font-family:arial; font-size:12px; padding-top:5px;padding-bottom:5px;\">";
echo"<a style=\"text-decoration:none; color:black;\" href=\"index.php?mois=".($mois-1)."&amp;annee=$annee\">«</a>";
echo" ".$liste_mois[$mois]." $annee ";
echo"<a style=\"text-decoration:none; color:black;\" href=\"index.php?mois=".($mois+1)."&amp;annee=$annee\">»</a>";
echo"</div>";

echo '<div id="conteneurcalendar">
<div id="conteneurjour">
<div class="float1">Lu</div>
<div class="float1">Ma</div>
<div class="float1">Me</div>
<div class="float1">Je</div>
<div class="float1">Ve</div>
<div class="float1">Sa</div>
<div class="float1">Di</div>
<div class="clear"></div>
</div>';

$jour_courant = 0;
echo '<div id="conteneurdate">';
while ($jour_courant <= date('t',$time_1er))
{
for ($i = 0; $i < 7; $i++)
{
$cle = NULL;
if ($jour_courant < $nbrJours)
{
if ($jour_courant == 0)
{
if ($jours[$i] == $jour_1er)
{
$jour_courant++;
$cle = $jour_courant;
}
}
else
{
$jour_courant++;
$cle = $jour_courant;
}
}
else
{
$jour_courant++;
}



// avant tout, vu que je gere avec des css, on determine (pour le jour qu'on est entrain d'afficher)
// la class d'un jour qui n'a ni news, et qui n'est pas le jour d'aujourd'hui
$cssJour="noir";
if($i>4)$cssJour="weekend";
// on matte si c'est le jour d'aujourd'hui pour lui mettre la class bleu
if($cle==@date('d') && $mois==@date('m') && $annee==@date('Y')){
if($i>4)$cssJour="weekendRouge";
else $cssJour="rouge";
}

//avant d'afficher le n° du jour (echo '<div>'.$cle.'</div>';) il faut matter dans la bdd, si il y une news a cette date
//donc soit tu gere les date avec des mktime, donc il faut calculer le timestamp du jour qu'on est entrain d'afficher
$date_news=mktime(0,0,0,$mois,$cle,$annee);
//sinon, si ont les genre en caractere
//$date_news=$cle."/".$mois."/".$annee;
//ensuite on fait la requete
$r_news=mysql_query("SELECT id,titre,description FROM calendar WHERE date='$date_news'");

//pis on regarde si le resultat est >0, et si c'est le cas, on change la css par la class rouge
if(@mysql_numrows($r_news)>0)$cssJour="bleu";

// et enfin on affiche la cellule du tableau (avec la css qui correspond
echo'<div class="'.$cssJour.' float">';
if(@mysql_numrows($r_news)>0)
echo'<a class="info" href="affnews.php?news_id='.mysql_result($r_news,0,"id").'">';
echo"$cle";
if(@mysql_numrows($r_news)>0)
echo"<span><b>Titre</b> : <br /><i>".mysql_result($r_news,0,"titre")."</i><br /><br /> <b>Message :</b><br /><i>".mysql_result($r_news,0,"description")."</i></span>";
if(@mysql_numrows($r_news)>0)echo"</a>";
echo"</div>";

}
//voila dans ce cas, le jour actuel est en bleu sauf s'il a une news il devient rouge comme les autres
//echo'</div>';
echo"<div class='clear'></div>";
}
echo '</div>';
echo '</div>';
}
else
{
echo 'Année sur 4 chiffres';
}
}
else
{
echo 'Mois ERRONNE';
}
}



if(!empty($_GET['annee'])){
$mois=$_GET['mois'];
$annee=$_GET['annee'];
if($mois==13){
$mois=1;
$annee++;
}
if($mois==0){
$mois=12;
$annee--;
}
}else{
$mois = date("m");
$annee = date("Y");
}
afficherCalendrier($mois,$annee);

?>


Voila ce que m'indique PHP :

Notice: Undefined index: 05 in c:\program files\easyphp1-8\www\buz\look.php on line 31

Un peu d'aide serait la bienvenue !!
Modifié par Viva (01 May 2008 - 17:11)

^
Heyoan
# 01 May 2008 - 13:26:13
Citer
Un p'tit Kiwiz Coca ?
1664 Posts
Salut Viva,

il faut remplacer les 2
$mois = date('m');
par
$mois = date('n');

car comme le précise la doc date('m') va te renvoyer 05 alors que c'est l'index 5 qui existe cligne !

A+

Un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ?

http://www.heyoan.com 
^
Viva
# 01 May 2008 - 14:18:08
Citer
49 Posts
putain je suis vraiment C.. merci beaucoup de ton aide nickel maintenant encore merci a toi de ta rapidité !!

^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 28.6 ms - Charte