Traitement de conditions
forrest
-
jp_forrest -
jp_forrest -
Je tourne en rond sur l'écriture de conditions, j'ai essayé différente façon mais je n'obtiens pas le résultat escompté.
Voilà mon problème :
J'ai une location avec des dates auxquelles la gestion est assurée par un organisme qu'on va appeler "LAC" entre le 12-06-2010 et le 19-09-2010.
En dehors des ces dates, c'est le propriétaire qui gère.
Pour cela, lorsqu'un visiteur remplit le formulaire, j'envoie un message soit au propriétaire, soit aux deux. Exemples :
Du 01-05-2010 au 10-06-2010 = Propriétaire (email_loueur)
Du 01-05-2010 au 20-06-2010 = Propriétaire + LAC
Du 20-06-2010 au 30-06-2010 = Propriétaire + LAC
Du 15-08-2010 au 30-09-2010 = Propriétaire + LAC
Du 20-09-2010 au 30-09-2010 = Propriétaire
Voici le code (le dernier testé...) que j'utilise :
// explication
$datedeb = date de début de location internaute
$datefin = date de fin de location internaute
$date_loc_lac_d1 = date de début de gestion LAC
$date_loc_lac_f1 = date de finde gestion LAC
//Code
if ($datedeb<$date_loc_lac_d1)
{
if ($datefin>$date_loc_lac_f1)
$destinataire = $email_loueur;
else
$destinataire = "$email_loueur,$email_lac";
}
else
$destinataire = "$email_loueur,$email"; //ici j'ai changé $email_lac, par email pour savoir quelle étape a été traité
Voici les testes effectués :
Du 01-06 au 29-06 = Destinataire loueur (résultat incorrect) la date de début est bien inférieur mais la date de fin est inférieur à la date de fin lac, je devrais donc envoyer le mail à "LAC"
Du 24-06 au 30-06 = Destinataire loueur et email (ok) là, la date de début est supérieur donc ok
Du 24-06 au 30-09 = Destinataire loueur et email (ok) Idem
Du 24-09 au 30-09 = Destinataire loueur et email (résultat incorrect) mais là c'est de ma faute, il manque une condition
Du 12-04 au 20-05 = Destinataire loueur (OK) mais pas par rapport au code, car la date de fin n'est superieur au 19-09-2010
Qu'ai-je manqué ???
Jean-Pierre
Voilà mon problème :
J'ai une location avec des dates auxquelles la gestion est assurée par un organisme qu'on va appeler "LAC" entre le 12-06-2010 et le 19-09-2010.
En dehors des ces dates, c'est le propriétaire qui gère.
Pour cela, lorsqu'un visiteur remplit le formulaire, j'envoie un message soit au propriétaire, soit aux deux. Exemples :
Du 01-05-2010 au 10-06-2010 = Propriétaire (email_loueur)
Du 01-05-2010 au 20-06-2010 = Propriétaire + LAC
Du 20-06-2010 au 30-06-2010 = Propriétaire + LAC
Du 15-08-2010 au 30-09-2010 = Propriétaire + LAC
Du 20-09-2010 au 30-09-2010 = Propriétaire
Voici le code (le dernier testé...) que j'utilise :
// explication
$datedeb = date de début de location internaute
$datefin = date de fin de location internaute
$date_loc_lac_d1 = date de début de gestion LAC
$date_loc_lac_f1 = date de finde gestion LAC
//Code
if ($datedeb<$date_loc_lac_d1)
{
if ($datefin>$date_loc_lac_f1)
$destinataire = $email_loueur;
else
$destinataire = "$email_loueur,$email_lac";
}
else
$destinataire = "$email_loueur,$email"; //ici j'ai changé $email_lac, par email pour savoir quelle étape a été traité
Voici les testes effectués :
Du 01-06 au 29-06 = Destinataire loueur (résultat incorrect) la date de début est bien inférieur mais la date de fin est inférieur à la date de fin lac, je devrais donc envoyer le mail à "LAC"
Du 24-06 au 30-06 = Destinataire loueur et email (ok) là, la date de début est supérieur donc ok
Du 24-06 au 30-09 = Destinataire loueur et email (ok) Idem
Du 24-09 au 30-09 = Destinataire loueur et email (résultat incorrect) mais là c'est de ma faute, il manque une condition
Du 12-04 au 20-05 = Destinataire loueur (OK) mais pas par rapport au code, car la date de fin n'est superieur au 19-09-2010
Qu'ai-je manqué ???
Jean-Pierre
A voir également:
- Traitement de conditions
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Ce logiciel gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
- Mise en forme conditionnelle excel plusieurs conditions - Guide
7 réponses
Salut,
essaie:
essaie:
if ($datedeb<$date_loc_lac_d1) { $destinataire = $email_loueur; } if ($datefin>$date_loc_lac_f1) { $destinataire = $email_loueur; } else { $destinataire = "$email_loueur,$email_lac"; }
Bonjour RickY38,
Je ne sais pas si je me trompe, mais si j'essaie ce que tu m'envoie, à la première condition je sorts en envoyant $email_loueur, sans tester la suite alors que si $datefin n'est pas supérieur à $date_loc_lac_f1, je dois exécuter $destinataire = "$email_loueur,$email_lac";
Jean-Pierre
Je ne sais pas si je me trompe, mais si j'essaie ce que tu m'envoie, à la première condition je sorts en envoyant $email_loueur, sans tester la suite alors que si $datefin n'est pas supérieur à $date_loc_lac_f1, je dois exécuter $destinataire = "$email_loueur,$email_lac";
Jean-Pierre
Salut,
Si la date est inférieur à la date de début de gestion LAC le courriel est envoyé au proprio.
Si la date est supérieur à la date de fin de gestion LAC le courriel est toujours envoyé au proprio.
En d'autre cas le courriel est envoyé aux 2 lac et proprio.
Si la date est inférieur à la date de début de gestion LAC le courriel est envoyé au proprio.
Si la date est supérieur à la date de fin de gestion LAC le courriel est toujours envoyé au proprio.
En d'autre cas le courriel est envoyé aux 2 lac et proprio.
Désolé Ricky, il y a une date de début et une de fin de réservation. Et je dis :
Si la date de début est inférieur à la date de début LAC et que
Si la date de fin est supérieur à la date fin LAC
Destinataire = proprio
Si non
Destinataire = proprio et LAC
Et ce n'est pas ce que j'obtiens, exemple :
Début résa 01-06-2010 / fin résa 20-06-2010
Je devrais envoyer un mail au proprio et à LAC puisque la date de fin est inférieur, ce n'est pas le cas, le mail est envoyé qu'au proprio...
Alors que mes dates sont bonnes et au même format, la date de fin (20-06-2010) est considérée comme inférieur à la date de fin LAC (19/09/2010)
Je ne comprends pas et j'ai pourtant tout vérifié...
if ($datedeb<$date_loc_lac_d1)
{
if ($datefin>$date_loc_lac_f1)
$destinataire = $email_loueur;
else
$destinataire = "$email_loueur,$email_lac";
}
else
$destinataire = "$email_loueur,$email";
Si la date de début est inférieur à la date de début LAC et que
Si la date de fin est supérieur à la date fin LAC
Destinataire = proprio
Si non
Destinataire = proprio et LAC
Et ce n'est pas ce que j'obtiens, exemple :
Début résa 01-06-2010 / fin résa 20-06-2010
Je devrais envoyer un mail au proprio et à LAC puisque la date de fin est inférieur, ce n'est pas le cas, le mail est envoyé qu'au proprio...
Alors que mes dates sont bonnes et au même format, la date de fin (20-06-2010) est considérée comme inférieur à la date de fin LAC (19/09/2010)
Je ne comprends pas et j'ai pourtant tout vérifié...
if ($datedeb<$date_loc_lac_d1)
{
if ($datefin>$date_loc_lac_f1)
$destinataire = $email_loueur;
else
$destinataire = "$email_loueur,$email_lac";
}
else
$destinataire = "$email_loueur,$email";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
if ($datedeb<$date_loc_lac_d1) AND ($datefin>$date_loc_lac_f1) { $destinataire = $email_loueur; } else { $destinataire = "$email_loueur,$email_lac"; }
Salut,
if (($datedeb<$date_loc_lac_d1) AND ($datefin>$date_loc_lac_f1)) {
$destinataire = $email_loueur;
}
else {
$destinataire = "$email_loueur,$email_lac";
}
Avec les parenthèses, je vais vérifier, mais je suis pratiquement sûr d'avoir fait ça aussi. Avec && pour le "et" mais c'est la même chose
Je contrôle
JP
Ben voilà ! Je viens de faire le teste le résultat est le même, debut 01-06-2010, fin 20-06-2010, je devrais avoir un mail au 2, je n'ai que le mail proprio...
if (($datedeb<$date_loc_lac_d1) AND ($datefin>$date_loc_lac_f1)) {
$destinataire = $email_loueur;
}
else {
$destinataire = "$email_loueur,$email_lac";
}
Avec les parenthèses, je vais vérifier, mais je suis pratiquement sûr d'avoir fait ça aussi. Avec && pour le "et" mais c'est la même chose
Je contrôle
JP
Ben voilà ! Je viens de faire le teste le résultat est le même, debut 01-06-2010, fin 20-06-2010, je devrais avoir un mail au 2, je n'ai que le mail proprio...
j'ai testé avec ce code en mettant des echo et ça fonctionne
<?php $datedeb = "14/06/2010"; $datefin = "21/09/2010"; $date_loc_lac_d1 = "12/06/2010"; $date_loc_lac_f1 = "19/09/2010"; ?> <?php if (($datedeb<$date_loc_lac_d1) OR ($datefin>$date_loc_lac_f1)) { echo "courriel loueur"; } else { echo "courriel loueur et lac"; } ?>
Bonsoir Ricky,
Pour info, mon code final et qui fonctionne :
if ($nom_location=="Le Cantou")
$destinataire = $email_loueur;
else if ($datedeb<$date_loc_lac_d1)
{
if ($datefin<$date_loc_lac_d1)
$destinataire = $email_loueur;
else
$destinataire = "$email_loueur,$email_lac";
}
else if (($datedeb>$date_loc_lac_d1) && ($datedeb<$date_loc_lac_f1))
{
$destinataire = "$email_loueur,$email_lac";
}
else
$destinataire = $email_loueur;
Merci pour les conseils
JP
Pour info, mon code final et qui fonctionne :
if ($nom_location=="Le Cantou")
$destinataire = $email_loueur;
else if ($datedeb<$date_loc_lac_d1)
{
if ($datefin<$date_loc_lac_d1)
$destinataire = $email_loueur;
else
$destinataire = "$email_loueur,$email_lac";
}
else if (($datedeb>$date_loc_lac_d1) && ($datedeb<$date_loc_lac_f1))
{
$destinataire = "$email_loueur,$email_lac";
}
else
$destinataire = $email_loueur;
Merci pour les conseils
JP