Probleme avec mon calendrier

loutwice Messages postés 37 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 29 janvier 2006 - 28 sept. 2004 à 00:45
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008 - 28 sept. 2004 à 17:42
salut ben voila je colle mon bout de code en dessous.

alors le probleme c'est que je fais une requete dans ma table pour savoir quelles périodes sont réserver ensuite, lors de l'affichage j'utilise une petite image pour dire de quels jours il s'agit.mon problme avec mon code actuel c que je n'arrive à marquer que la dernière période récuperer dan s ma base....
help me pleaze!!..
<?

$requete = mysql_query("SELECT * FROM `ami_reserver` WHERE 1 ORDER by res_datedeb ") or die (mysql_error());
$num_lign = mysql_num_rows($requete);
if ($num_lign ==0){
echo "aucune réservation faites.";
exit;
}
if (!$requete) {
echo " Erreur dans l'exécution de la requête.
";
echo "Message de MySQL :" . mysql_error();
}else{

while ($row = mysql_fetch_array($requete, MYSQL_ASSOC)) {
$resa_datedeb = $row["res_datedeb"];
$resa_datefin= $row["res_datefin"];

$result = explode("/",$resa_datedeb); //le divise en jour,mois, annee
$resultat = explode("/",$resa_datefin); //le divise en jour,mois, annee
$diff=diff_date($resa_datedeb , $resa_datefin);
$jour_reserver =$result[0];
$moi_reserver=$result[1];

}
}
}
for ($i=1;$i<$nb_jour[$mois-1]+1;$i++){
if ($mois==$moi_reserver & $i>=$jour_reserver & $i<=($jour_reserver+$diff) & $i<=$nb_jour[$mois-1]) {
$coloriage=' background="rond.gif"';
next; }else {$coloriage=' ';
next;}
echo '<td align="center"'.$coloriage.' height="30">'.$i.'</td>';

// il ne faut pas oublié d'aller à la ligne suivante enfin de semaine
if (($i+$jour_debut_mois)%7==1)
echo '</tr>
<tr>';

}
?>
qan c abrupt loulou met a pik

1 réponse

tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
28 sept. 2004 à 17:42
tout d'abord ce code ne sert a rien puisque tu fais un die() si la ta requete ne s'est pas execute correctement:
if (!$requete) {
echo "Erreur dans l'exécution de la requête.
";
echo "Message de MySQL :" . mysql_error();
}

la fonction diff_date n'est pas dans la documentation php

Tu me sembles gerer les dates comme une chaine de carateres non pas comme une date mysql aaaa-mm-dd- HH:ii:ss surtout que tu fais un tri par date (res_datedeb)

exemple 12/01/2000 va etre superieur au 01/12/2004 =>probleme

ne mets pas de calcule dans ta boucle for sauf si necessaire (cas rare)
il vaut mieux faire

$fin=$mafin[monpointeur-1]+1;
for($i=0;$i<$fin;$i++)
{ ... }

car ton calcule dans ta condition va se faire autant de fois que de loop donc si $i=0 à $i=1000000 tu fais 1000000 un meme calcule ($mafin[monpointeur-1]+1) qui te retournera tjrs le meme resultat

pour manipuler des dates en php il est bien plus simple d'utiliser mktime ou gmmktime qui te retournent un entier positif

enfin & est different de &&. & permet de travailler sur les bits comme >> ou | << etc. 1 & 1 n'est pas la meme chose que 1 && 1

Je pense que tu devrais revoir tout ca.

dsl je suis dur cela dit je peux t'aider
0
Rejoignez-nous