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 :

Fourchettes de prix et checkbox [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut Fourchettes de prix et checkbox
    Bonjour à tous!
    je vais essayé d'être clair.
    J'ai une page qui contiens un moteur de recherche de prix composé de checkbox.
    pour chaque tranche de prix, une checkbox
    100 -150, 150 -200, 200-250, 250-300 ... 450-500.

    dans ma page j'ai donc fais quelque comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (isset($_POST['100-150'])){ $requette .= " AND lebien.prix < 150000"; } 
    else if (isset($_POST['150-200'])){ $requette .= " AND lebien.prix < 200000"; } 
         else if (isset($_POST['200-250'])){ $requette .= " AND lebien.prix < 250000"; } 
              else if (isset($_POST['250-300'])){ $requette .= " AND lebien.prix < 300000"; }
                   else if (isset($_POST['300-350'])){ $requette .= " AND lebien.prix < 350000"; }
                        else if (isset($_POST['350-400'])){ $requette .= " AND lebien.prix < 400000"; }
                             else if (isset($_POST['400-450'])){ $requette .= " AND lebien.prix < 450000"; }   
                                  else if (isset($_POST['450-500'])){ $requette .= " AND lebien.prix < 500000"; }
                                       else if (isset($_POST['500+'])){ $requette .= " AND lebien.prix > 500000"; }
    Mais ca ne prend en compte que ma derniere checkbox coché.
    Par exemple, si je coche 200-250 et 250-300, je voudrai les prix entre 200 et 300. mais avec ce que j'ai fait, ca me donne que les prix inférieure à 300...

    Je vois pas trop comment faire là du coup

    Merci d'avance pour votre petit coup de main

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je pense que c'est ton interface qui est mal conçue : si un utilisateur voulait les prix entre 100 et 300 il faudrait qu'il coche 100-150 et 250-300 par exemple ou meme 100-150, 250-200 et 250-300 ?

    Demande directement à l'utilisateur la fourchette de prix qui l'interesse, ca sera plus naturel pour l'utilisateur et ca sera plus facile a ecrire au niveau du code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    Merci pour ta réponse. Entièrement daccord, mais l'interface est imposés... Faut que je m'adapte
    Je me demande si il ne serait pas plus efficace de dabord faire un traitement en php avant de metre ca en requête.
    Du genre : en fonction des checkboxs cliqués, récupérer un minimum et un maximum...
    Mais je vois pas comment faire non plus.. une idée?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Points : 550
    Points
    550
    Par défaut
    Citation Envoyé par minimoof Voir le message
    Par exemple, si je coche 200-250 et 250-300, je voudrai les prix entre 200 et 300. mais avec ce que j'ai fait, ca me donne que les prix inférieure à 300...
    Mais où est-ce que tu as renseigné dans ton code que la limite inférieure était 200? o_O

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    Dans le code que j'ai mis plus haut, nul part.. je ne vois justement pas comment faire...
    J'ai bien testé en mettant quelques chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //if (isset($_POST['100-150'])){ $requette .= " AND lebien.prix < 150000"; } 
    //if (isset($_POST['100-150']) && isset($_POST['150-200'])){ $requette .= " AND lebien.prix > 100000 AND lebien.prix < 200000"; } 
    //if (!isset($_POST['100-150']) && isset($_POST['150-200'])){ $requette .= " AND lebien.prix > 150000 AND lebien.prix < 200000"; } 
    //if (!isset($_POST['100-150']) && !isset($_POST['150-200']) && isset($_POST['200-250'])){ $requette .= " AND lebien.prix > 200000 AND lebien.prix < 250000"; } 
    //if (isset($_POST['100-150']) && isset($_POST['150-200']) && isset($_POST['200-250'])){ $requette .= " AND lebien.prix < 250000"; }
    mais ca va etre une usine à gaz. je pense qu'il y a moyen de faire plus simple, mais je vois pas comment

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Points : 550
    Points
    550
    Par défaut
    Hmm...
    Une simple idée: un truc du genre:
    Code php : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    $plimitesmin = "";
    $plimitesmax = "";
    if(isset($_POST['100-150'])) { $plimitesmin .= "100,";
    $plimitesmax .= "150,";
    } if(isset($_POST['150-200'])) { $plimitesmin .= "150,";
    $plimitesmax .= "200,";
    } if(isset($_POST['200-250'])) { $plimitesmin .= "200,";
    $plimitesmax .= "250,";
    } if(isset($_POST['250-300'])) { $plimitesmin .= "250,";
    $plimitesmax .= "300,";
    } if(isset($_POST['300-350'])) { $plimitesmin .= "300,";
    $plimitesmax .= "350,";
    } if(isset($_POST['350-400'])) { $plimitesmin .= "350,";
    $plimitesmax .= "400,";
    } if(isset($_POST['400-450'])) { $plimitesmin .= "400,";
    $plimitesmax .= "450,";
    } if(isset($_POST['450-500'])) { $plimitesmin .= "450,";
    $plimitesmax .= "500,";
    }
    $plimitesmin = explode($plimitesmin, ",");
    $plimitesmax = explode($plimitesmax, ",");
     
    $leminimum = min($plimitesmin);
    $lemaximum = min($plimitesmax);
    if(isset($_POST['500+'])) { $requette .= " AND lebien.prix > ".$leminimum;
    } else { $requette .= " AND lebien.prix > ".$leminimum." AND lebien.prix < ".$lemaximum;
    }

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    héhé ca m'as l'air carément bien ca!! merci beaucoup!
    je test ca ce soir.

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

Discussions similaires

  1. Fourchette d'estimation de prix pour site
    Par totoz dans le forum Devis
    Réponses: 9
    Dernier message: 24/06/2009, 09h17
  2. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  3. Checkbox
    Par rgarnier dans le forum XMLRAD
    Réponses: 11
    Dernier message: 06/03/2003, 10h48
  4. Couleur d'un CheckBox
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/07/2002, 14h48
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

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