IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème avec les conditions if else elseif dans la construction de ma requête


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut Problème avec les conditions if else elseif dans la construction de ma requête
    Bonjour à tous,
    Je vous expose mon problème :
    J'ai un moteur de recherche sur mon site, elle se fait sur plusieurs critères...le soucies est que je souhaite qu'elle me donne egalement les resultats soit :

    1 - sur la France entière
    2 - sur toute la région
    3 - sur un département

    Problème, j'affiche bien la France, la région mais pas le département, celui-ci me retourne les résultats pour toute la France... J'ai essayé plusieur manip dans mes conditions if else et elseif mais j'obtiens à chaque fois que deux des trois resultats souhaités...

    Si quelqu'un à une idée à me soumettre je suis preneur !
    Cordialement et merci à tous,
    Karpe

    P.S: si je me suis planté de Forum, ce qui n'est pas improbable, n'hesitez pas à le deplacer


    Le traitement de ma condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //$localisation est le nom du champ a choix multiple
    if ((!($localisation == $_GET['id_region'])) && (!($localisation == 0)))
    {
    $selecloc = "AND departement='$localisation'";
    }
    //si $ localisation n'est pas egale a l'idée de région ou a zero on selectionne le departement, c'est la que ca marche pas
     
    elseif ($localisation == $_GET['id_region'])
    {
    $selecloc = "AND region='$localisation'";
    }
    //si $localisation est egale a l'id de region on selectionne la region, là ca marche
     
    elseif ($localisation == 0)
    {
    $selecloc = "";
    }	
    // sinon si $localisation est egale à 0 on selectionne la france, là ca marche aussi
    Ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $selection_recherche = mysql_query("SELECT *
    FROM annonces
    WHERE $valeur_requete $selecat $selecloc ORDER BY idannonce DESC LIMIT $limite,$nombre");

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    et comme ca ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (($localisation != $_GET['id_region']) && ($localisation != 0))
    {
    $selecloc = "AND departement='$localisation'";
    }

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    Merci Vorace, mais non toujours pas ... c'est con ce genre de détail... j'suis en mode casse-tête chinois...

  4. #4
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    rajoute le code html avec le champs à choix multiples...

  5. #5
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    le champ a choix multiple ne change pas grand chose... Il s'appel "localisation" ...et j'arrive a afficher indépendamment chacun des trois critères ...donc le champ est bon ... le problème c'est que dans ma requête il n'y aura à chaque fois que deux des trois possibilité qui marchera pour la recherche ...
    J'suis dépité ...

  6. #6
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    Le soucie viens donc bel et bien de la formulation de ma condition..

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 469
    Points : 525
    Points
    525
    Par défaut
    A mon avis ca sctoch car tu n'as pas le même nombre de critères dans tes conditions.

    Et un truc simplifié genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (($localisation == $_GET['id_region']) && ($localisation != 0))
    {
    $selecloc = "AND departement='$localisation'";
    }
    elseif (($localisation != $_GET['id_region']) && ($localisation != 0))
    {
    $selecloc = "AND region='$localisation'";
    }
    else
    {
    $selecloc = "";
    }

  8. #8
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    Merci Gaëtan,
    J'ai fait une petite modif au niveau du point d'exclamation ...mais cela ne regle pas le problème ...j'ai bien l'affichage de la région ainsi que de la france mais pas le departement...qui lui me renvoi a l'affichage de toute la france..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if (($localisation != $_GET['id_region']) && ($localisation != 0))
    {
    $selecloc = "AND departement='$localisation'";
    }
    elseif (($localisation == $_GET['id_region']) && ($localisation != 0))
    {
    $selecloc = "AND region='$localisation'";
    }
    else
    {
    $selecloc = "";
    }
    A noter que cette ligne seul m'affiche bien le resultat pour le departement choisi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $selecloc = "AND departement='$localisation'";

  9. #9
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    ... pour vous rendre compte, voilà l'adresse de la page en test ..www.loca-loc.fr/voir_annonce.php ? id_region=4

    (retirer les espace avant et aprés le point d'interrogations)

  10. #10
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Points : 44
    Points
    44
    Par défaut
    Bon bien j'ai résolu mon problème tout seul comme un grand ...

    Il suffisait de rajouter des guillemets simple pour la localisation France entière c'est à dire autour des '0' ...voilà si ca peut aider je rebalance le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (($localisation != $_GET['id_region']) && ($localisation !== '0'))
    {
    $selecloc = "AND departement='$localisation'";
    }
    elseif ($localisation == $_GET['id_region'])
    {
    $selecloc = "AND region='$localisation'";
    }	 
    elseif ($localisation == '0')
    {
    $selecloc = "";
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2011, 11h07
  2. Réponses: 1
    Dernier message: 24/02/2011, 10h37
  3. [AC-2007] problème avec les en-têtes de page dans les sous états.
    Par nitou dans le forum IHM
    Réponses: 0
    Dernier message: 04/09/2010, 08h55
  4. Réponses: 0
    Dernier message: 12/02/2009, 13h07
  5. Problème avec les conditions ''sous-ensemble d'un tableau''
    Par djangossoul dans le forum LabVIEW
    Réponses: 2
    Dernier message: 07/06/2007, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo