Impossible d'entrer dans une boucle.

Fermé
Pither22 Messages postés 4 Date d'inscription mercredi 15 octobre 2014 Statut Membre Dernière intervention 28 octobre 2014 - 28 oct. 2014 à 10:21
Liightman Messages postés 51 Date d'inscription lundi 17 novembre 2014 Statut Membre Dernière intervention 7 janvier 2016 - 18 nov. 2014 à 06:44
Bonjour à tous !

voilà, je suis actuellement en train de développer une application de gestionnaire de congés.

Lorsque je dois agir sur un congé en particulier, je récupère son champ "uuid" qui est unique.
Les actions sur les différents cas de congés sont répartis en plusieurs boucles de la façon suivante:


if($debut_date_conge == $fin_date_conge{

//En d'autres termes, le congés commence et se termine le même jour.

if($deb_creneau == "Matin"){

//Si le congé débute le matin.
//Récupération de l'uuid corréspondant --> OK
//Action sur le congé --> OK.
}

elseif($deb_creneau == "Après-midi"){

//Si le congé débute l'après midi.
//Récupération de l'uuid corréspondant --> OK
//Action sur le congé --> OK.
}

else{

//Si le congé dur toute la journée
//Récupération de l'uuid corréspondant --> OK
//Action sur le congé --> OK.
}
}

//A partir d'ici, seul les congés se déroulant sur plus d'une journée entre dans la boucle suivante. (Un congé peut durer une journée (24h) et s'étaler sur deux jours (de 12h à 12h)).

for($i == 0; $i <= nbJours; i++){

//nbJours représente le nombre de jours de congé.

if($deb_creneau == "Après-midi && $i == 0){

//Si le congé débute un après midi.
//Récupération de l'uuid corréspondant --> OK
//Action sur le congé --> OK.
}

else{

if($end_creneau == "Matin" && $i == $nbJours){

//Si le congé se termine par une matinée.
}

elseif($i < $nbJours){

//Pour tous les congés se déroulant sur une journée entière
//Récupération de l'uuid corréspondant --> OK
//Action sur le congé --> OK.
}
}


La boucle sur une journée fonctionne à 100%.
La première boucle de la boucle "congé sur plusieurs jours" fonctionne.
Mes problèmes se situent sur les deux dernières boucles.
Lorsque j'ai pensé mon code, j'envisageais que lorsqu'un congé se terminait une matinée, le programme passerait dans la dernière boucle pour tous les jours entiers (ce qui est le cas) et ensuite pour le dernier passage (dernier jour non complet) passerait dans la deuxième boucle pour supprimer la matinée.
Sauf erreur de ma par, je ne vois rien qui empêcherait le programme de fonctionner comme ça.
Or, jamais je n'ai réussi à rentrer dans la boucle

 if($end_creneau == "Matin" && $i == $nbJours 


Deuxième petit bémol, lorsqu'un congé débute par une journée entière et fini une matinée, nbJours est alors égale à 1,5.
On entre alors deux fois au lieu d'une dans la dernière boucle, et alors on traite aussi l'après midi du deuxième jours...

J'espère avoir été clair, c'est vrai que c'est pas très bien expliqué, désolé, j'ai essayé de résumer au mieux le problème.
Je remercie d'avance ceux qui ont lu jusqu'au bout.
Si vous avez des idées sur ce qui coince dans mon programme, n'hésitez pas à m'en faire par.
n'hésitez pas à demander des informations supplémentaires qui pourraient vous aider à m'aider ^^.

Merci, cordialement.

1 réponse

Liightman Messages postés 51 Date d'inscription lundi 17 novembre 2014 Statut Membre Dernière intervention 7 janvier 2016 9
18 nov. 2014 à 06:44
Salut!

J'ai lu rapidement ton script, mais avant que me m'y penche vraiment, peut tu nous mettre tes script entre la balise <code> s'il te plait?

Merci d'avance
0