Probleme dans condition de boucle ou boucle

Eléphant du PHP | 63 Messages

20 avr. 2009, 14:55

Code : Tout sélectionner

$maReqJourFerie="SELECT IdJourFerie, DateTimeJourFerie FROM joursferies"; $rsJourFerie=mysql_query($maReqJourFerie); while ($rowJourFerie=mysql_fetch_array($rsJourFerie)){ echo($rowJourFerie['IdJourFerie']); $dateFerie=$rowJourFerie['DateTimeJourFerie']; $separeEnvoi=split("[- :]", $dateFerie); $anneeFerie=$separeEnvoi[0]; $moisFerie=$separeEnvoi[1]; $jourFerie=$separeEnvoi[2]; $mkTimeJourFerie=mktime(0, 0, 0, $moisFerie, $jourFerie, $anneeFerie); $jourFerieDansSemaine=date("w", mktime(0, 0, 0, $moisFerie, $jourFerie, $anneeFerie)); //****************************************** ENVOI DU VENDREDI ******************************************// //---------------------------------------------------------- si our envoi vendredi et que jour ferie samedi qui suis (reception normal MARDI) -------------------------------------------------------------------// if ($jourDeSemaine==5 and $jourFerieDansSemaine==6 and $mkTimeJourEnvoi==$mkTimeJourFerie-$mkTime24H){ echo ("envoi vendredi et ferie samedi delai 4 jours"); mysql_query("UPDATE commandes SET Statut='1' WHERE ".$ecart." <= ".$mkTime96H." AND IdCommande=".$IdCommande." "); mysql_query("UPDATE commandes SET Statut='2' WHERE ".$ecart." > ".$mkTime96H." AND IdCommande=".$IdCommande." "); //---------------------------------------------------------- sinon si envoi vendredi et que jour ferie lundi qui suis ( reception normal MARDI) ------------------------------------------------------------------// }elseif ($jourDeSemaine==5 and $jourFerieDansSemaine==1 and $mkTimeJourEnvoi==$mkTimeJourFerie-$mkTime72H){ echo ("envoi vendredi et ferie lundi delai 4 jours"); mysql_query("UPDATE commandes SET Statut='1' WHERE ".$ecart." <= ".$mkTime96H." AND IdCommande=".$IdCommande." "); mysql_query("UPDATE commandes SET Statut='2' WHERE ".$ecart." > ".$mkTime96H." AND IdCommande=".$IdCommande." "); //---------------------------------------------------------- sinon si envoi vendredi et que pas jour ferie (reception normal LUNDI) ------------------------------------------------------------------------------// }elseif ($jourDeSemaine==5 ){ echo ("envoi vendredi et pas ferie delai 3 jours"); mysql_query("UPDATE commandes SET Statut='1' WHERE ".$ecart." <= ".$mkTime72H." AND IdCommande=".$IdCommande." "); mysql_query("UPDATE commandes SET Statut='2' WHERE ".$ecart." > ".$mkTime72H." AND IdCommande=".$IdCommande." "); } }

Bonjour voila un extrait de mon code, qui a pour bute de voir si il y a un jour ferié
et si jour ferié detecté ou mardi ou mercredi dans l'exemple là de calculer avec un
écart de 72h ou si ni mardi ou mercredi de ferié. Sinon ca veux dire que délai de livraison
pas toucher par jour férié alors on calcul avec ecart de 48 h.

Probleme je crois quil me manque une restriction dans le dernier "elseif" car a chaque
fois il detecte bien le jour férié mais probleme vu que suis dans une boucle il prend
le derniere element de la boucle pour faire l'update.


par exemple j'entre
date d'envoi : 10-04-2009
date reception :14-04-2009

le 13-04-2009 est donc le lundi de paques

voila le resultat de mes conditions grace a laffiche avec des echo() :
1envoi vendredi et pas ferie delai 3 jours2envoi vendredi et ferie lundi delai 4 jours
3envoi vendredi et pas ferie delai 3 jours4envoi vendredi et pas ferie delai 3 jours
5envoi vendredi et pas ferie delai 3 jours6envoi vendredi et pas ferie delai 3 jours
7envoi vendredi et pas ferie delai 3 jours8envoi vendredi et pas ferie delai 3 jours
9envoi vendredi et pas ferie delai 3 jours10envoi vendredi et pas ferie delai 3 jours
11envoi vendredi et pas ferie delai 3 jours

donc le probleme c'est que a chaque jours férié dut a ma boucle
il entre en une condition donc il rentre onze fois la et en fait il devrait y entre qu'une fois
je sais pas si doit rajouter un and dans mon derniere elseif ou si ca viens de ma boucle
Avec le temps qui s'écoule je trouve que je m'en sort de mieux en mieux :)