Else et else if
Résolu
caro__48
Messages postés
264
Statut
Membre
-
caro__48 Messages postés 264 Statut Membre -
caro__48 Messages postés 264 Statut Membre -
Bonjour,
J'ai un problème pour afficher des données, depuis une requête sql, je compile des if , else if et esle pour afficher les données suivant différents critères (sélectionnés avec les if). Ca marche bien sauf dès que je mets le denier else, il oubli toutes mes autres conditions et passe direct au else
Je galère un peu.
Voici mon code:
<?php
$date1= date("Y-m-d");
$requete1=mysql_query("
select
L.gamme,
L.ref_produit,
L.descriptif,
L.nom_produit,
L.date_livraison,
L.recherche_1,
L.recherche_2,
L.recherche_3,
L.photo,
L.photo_grand_modele,
L.cdt,
L.PA,
L.PVC,
L.id_categories,
L.etat,
L.date_limite_cde,
L.date_limite_affichage,
L.New,
L.Titre_import,
L.Sous_titre_import,
L.Reassort,
L.Coef,
L.logo,
L.texte_specifique,
L.fourn_import,
C.qt_commande_L_01,
C.qt_commande_L_02,
C.date,
C.id_adh,
C.etat_I
From liste as L, commandes_import as C
WHERE id_categories = 8 AND etat ='OUI' order by fourn_import, Titre_import, Sous_titre_import ASC") or die (mysql_error());
//vérification des donnée si aucune message
$a= mysql_num_rows($requete1);
if ($a==0)
{
echo ('<center>
<br><br><h2>Aucun produit disponible en commande actuellement. <br> Merci de votre compréhension.</h2></center');
}
else
{
while ($val = mysql_fetch_object($requete1))
{
if ( ($val->date_limite_affichage> $date1) && ($val->id_adh == $adh))
{
echo "Date limite d'affichage atteinte, on affiche que les données validées par ladh dans la table commandes_import ";
}
else if (($val->date_limite_affichage<=$date1) && ($val->id_adh == $adh))
{
echo "l'id_adh est déjà présent dans ma table commandes_import, on affiche tous les produits avec en plus les quantités déjà entrées par l'utilisateur.";
}
else
{
//if (($val->id_adh == "") && ($val->date_limite_affichage<=$date1))
//{
echo "On affiche tous les produits car adh inconnu dans la table_commandes_import (pas présent) et date limite <= a la date du jour.";
//}
}
}
}
Quelqu'un aurait-il une solution?
Merci d'avance
--
l'informatique est né pour nous faire réfléchir....
J'ai un problème pour afficher des données, depuis une requête sql, je compile des if , else if et esle pour afficher les données suivant différents critères (sélectionnés avec les if). Ca marche bien sauf dès que je mets le denier else, il oubli toutes mes autres conditions et passe direct au else
Je galère un peu.
Voici mon code:
<?php
$date1= date("Y-m-d");
$requete1=mysql_query("
select
L.gamme,
L.ref_produit,
L.descriptif,
L.nom_produit,
L.date_livraison,
L.recherche_1,
L.recherche_2,
L.recherche_3,
L.photo,
L.photo_grand_modele,
L.cdt,
L.PA,
L.PVC,
L.id_categories,
L.etat,
L.date_limite_cde,
L.date_limite_affichage,
L.New,
L.Titre_import,
L.Sous_titre_import,
L.Reassort,
L.Coef,
L.logo,
L.texte_specifique,
L.fourn_import,
C.qt_commande_L_01,
C.qt_commande_L_02,
C.date,
C.id_adh,
C.etat_I
From liste as L, commandes_import as C
WHERE id_categories = 8 AND etat ='OUI' order by fourn_import, Titre_import, Sous_titre_import ASC") or die (mysql_error());
//vérification des donnée si aucune message
$a= mysql_num_rows($requete1);
if ($a==0)
{
echo ('<center>
<br><br><h2>Aucun produit disponible en commande actuellement. <br> Merci de votre compréhension.</h2></center');
}
else
{
while ($val = mysql_fetch_object($requete1))
{
if ( ($val->date_limite_affichage> $date1) && ($val->id_adh == $adh))
{
echo "Date limite d'affichage atteinte, on affiche que les données validées par ladh dans la table commandes_import ";
}
else if (($val->date_limite_affichage<=$date1) && ($val->id_adh == $adh))
{
echo "l'id_adh est déjà présent dans ma table commandes_import, on affiche tous les produits avec en plus les quantités déjà entrées par l'utilisateur.";
}
else
{
//if (($val->id_adh == "") && ($val->date_limite_affichage<=$date1))
//{
echo "On affiche tous les produits car adh inconnu dans la table_commandes_import (pas présent) et date limite <= a la date du jour.";
//}
}
}
}
Quelqu'un aurait-il une solution?
Merci d'avance
--
l'informatique est né pour nous faire réfléchir....
2 réponses
-
Bonjour,
Peux tu mettre des commentaires pour etre sur de bien comprendre ton probleme (genre rentre ici alors que devrait pas) et mettre tonc ode entre balise code stp
Sinon peut tu faire un echo de $val->id_adh et adh, ils sont peut etre différents ...-
-
-
A essayer :
if ($a==0) { echo ('<center><br><br><h2>Aucun produit disponible en commande actuellement. <br> Merci de votre compréhension.</h2></center'); } else { while ($val = mysql_fetch_object($requete1)) { if ($val->date_limite_affichage > $date1 && $val->id_adh == $adh) { echo "Date limite d'affichage atteinte, on affiche que les données validées par ladh dans la table commandes_import "; } else if ($val->date_limite_affichage <= $date1 && $val->id_adh == $adh) { echo "l'id_adh est déjà présent dans ma table commandes_import, on affiche tous les produits avec en plus les quantités déjà entrées par l'utilisateur."; } else if ($val->id_adh == "") { // $val->id_adh est vide } else { // $val->id_adh n'est pas vide et n'est pas égal à $adh } } }
-
-
Bon, ton code :
<?php
$date1 = date("Y-m-d");
$requete1 = mysql_query("SELECT L.gamme, L.ref_produit, L.descriptif, L.nom_produit,
L.date_livraison, L.recherche_1, L.recherche_2, L.recherche_3,
L.photo, L.photo_grand_modele, L.cdt, L.PA,
L.PVC, L.id_categories, L.etat, L.date_limite_cde,
L.date_limite_affichage, L.New, L.Titre_import,
L.Sous_titre_import, L.Reassort, L.Coef, L.logo,
L.texte_specifique, L.fourn_import, C.qt_commande_L_01,
C.qt_commande_L_02, C.date, C.id_adh, C.etat_I
FROM liste as L, commandes_import as C
WHERE id_categories = 8
AND etat ='OUI'
ORDER BY fourn_import, Titre_import, Sous_titre_import ASC") or die (mysql_error());
//vérification des donnée si aucune message
$a= mysql_num_rows($requete1);
if ($a==0)
{
echo ('<center>
<br /><br /><h2>Aucun produit disponible en commande actuellement. <br /> Merci de votre compréhension.</h2></center');
}
else
{
while ($val = mysql_fetch_object($requete1))
{
if ( ($val->date_limite_affichage> $date1) && ($val->id_adh == $adh))
echo "Date limite d'affichage atteinte, on affiche que les données validées par ladh dans la table commandes_import ";
else if (($val->date_limite_affichage<=$date1) && ($val->id_adh == $adh))
echo "l'id_adh est déjà présent dans ma table commandes_import, on affiche tous les produits avec en plus les quantités déjà entrées par l'utilisateur.";
else
{
//if (($val->id_adh == "") && ($val->date_limite_affichage<=$date1))
echo "On affiche tous les produits car adh inconnu dans la table_commandes_import (pas présent) et date limite <= a la date du jour.";
}
}
}
?>
Ce que j'essaierai en premier :
<?php
$date1 = date("Y-m-d");
$requete1 = mysql_query("SELECT L.gamme, L.ref_produit, L.descriptif, L.nom_produit,
L.date_livraison, L.recherche_1, L.recherche_2, L.recherche_3,
L.photo, L.photo_grand_modele, L.cdt, L.PA,
L.PVC, L.id_categories, L.etat, L.date_limite_cde,
L.date_limite_affichage, L.New, L.Titre_import,
L.Sous_titre_import, L.Reassort, L.Coef, L.logo,
L.texte_specifique, L.fourn_import, C.qt_commande_L_01,
C.qt_commande_L_02, C.date, C.id_adh, C.etat_I
FROM liste as L, commandes_import as C
WHERE id_categories = 8
AND etat ='OUI'
ORDER BY fourn_import, Titre_import, Sous_titre_import ASC") or die (mysql_error());
//vérification des donnée si aucune message
$a = mysql_num_rows($requete1);
if ($a==0)
{
echo ('<center>
<br /><br /><h2>Aucun produit disponible en commande actuellement. <br /> Merci de votre compréhension.</h2></center');
}
else
{
while ($val = mysql_fetch_object($requete1))
{
if($val->id_adh == $adh)
{
if ( strtotime($val->date_limite_affichage) > strtotime($date1))
echo "Date limite d'affichage atteinte, on affiche que les données validées par ladh dans la table commandes_import ";
if (strtotime($val->date_limite_affichage) <= strtotime($date1))
echo "l'id_adh est déjà présent dans ma table commandes_import, on affiche tous les produits avec en plus les quantités déjà entrées par l'utilisateur.";
}
else
{
echo "On affiche tous les produits car adh inconnu dans la table_commandes_import (pas présent) et date limite <= a la date du jour.";
}
}
}
?>
Qu'est ce que ça te donnes ?-
Cela m'affiche toujours le dernier echo avec en plus suivant les conditions les phrases dans les echo correspondant.
En fait j'ai tout le temps:
n affiche tous les produits car adh inconnu dans la table_commandes_import (pas présent) et date limite <= a la date du jour.
Avec en plus la phrase qui correspond.
Par exemple. Si la condition1 est rempli j'ai :
On affiche tous les produits car adh inconnu dans la table_commandes_import (pas présent) et date limite <= a la date du jour.Date limite d'affichage atteinte, on affiche que les données validées par ladh dans la table commandes_import
Tu vois? -
Bonsoir,
C'est étrange, tu utilises dans tes conditions une variable $adh qui n'est déclarée (affectée) nulle part dans ton script ? Quelle valeur est-elle sensée contenir ?
Cordialement.- elle est déclarée bcp plus haut dans mon script. ca marche avec les sessions. je recupere l idh adh qui correspond a l utilisateur. (chaque utilisateur a nom de session unique)que je declare en $adh pour pouvoir m en servir. Verifier que l id connecter est bien celui que je veux dans ma requête et donc ds mes if...
- elle est déclarée bcp plus haut dans mon script. ca marche avec les sessions. je recupere l idh adh qui correspond a l utilisateur. (chaque utilisateur a nom de session unique)que je declare en $adh pour pouvoir m en servir. Verifier que l id connecter est bien celui que je veux dans ma requête et donc ds mes if...
-