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

Servlets/JSP Java Discussion :

condition et déclaration dans ma requête amovible


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut condition et déclaration dans ma requête amovible
    Bonjour,

    Je poursuis mes efforts dans le monde de JAVA et me heurte à un nouveau problème concernant un moteur de recherche multicritères. Je ne sais pas si j'ai la bonne démarche mais je voudrais que ma requête finale se forme en fonction des critères de recherche sélectionnés. Je m'explique :

    Si je recherche une personne qui a un nom, un prénom et un age.

    Voilà mon raisonnement, ce que je pensais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM personne WHERE "+sinom+siprenom+siage+" AND id>0";
    le problème c'est que ca ne marche pas :\

    En amont je teste chaque valeur ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String nom = request.getParameter("nom");
    String prenom = request.getParameter("prenom");
    ...
    Je teste ensuite si c'est rempli ou non et j'écris en fonction des bouts sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (nom.length()<1) { String sinom = ""; }else{ String sinom = "nom="+nom;}
    //comme nom est toujours existante je teste sa longueur et ensuite selon la longeur sinom devient rien ou du futur sql.

    C'est nul ce que j'ai fait, ce principe ?

    Bien à vous,

    hpl76

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    j'ai progressé en comprenant un truc par rapport à php (toujours cette histoire de type de variable qu'on ne peut pas définir dans une condition mais avant).

    Sinon dans l'idée c'est ca ?

  3. #3
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faut ajouter les simples quotes quand le champ est de type String et un blanc pour séparer chaque élément de la clause where :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String sinom = "nom='"+nom+"' ";
    EDIT : et ne pas oublier le "and"

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Merci, oui en effet (un oubli de ma part ^^) sinon je rencontre un truc bizarre avec 2 boutons radios ayant le même nom.

    Ma condition même quand est vérifiée me renvoie la solution négative.

    Le bouton en question avec un oui non en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    oui <input name="monbr" type="radio" value="O">
    non <input name="monbr" type="radio" value="N" size="12" checked>
    une fois la valeur postée dans la même page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String monbr = request.getParameter("monbr");
            String sowhat ="";
    Si mon bouton radio est sur oui ca devrait m'écrire la 1ère portion de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (monbr=="O") { sowhat = "mon champ = O AND "; }else{ sowhat = "mon champ = N AND ";}
    Si j'ouprinte monbr il me renvoie bien O si j'ai coché oui ou N si j'ai coché non mais la condition renvoie systématiquement non à savoir mon champ = N AND.

    Une idée sans vouloir abuser ?

    Merci à toi.

    hpl76

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    C'est toujours un problème de quotes et de plus, pour comparer des champs de type String, il faut utiliser equals :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( monbr.equals("O") ) { sowhat = "mon champ='O' AND "; }else{ sowhat = "mon champ='N' AND ";}

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    J'ai du mal avec l'utilisation de cette syntaxe.

    Au fait, t'es un chef, c'est parfait, ca marche nickel !!!!


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

Discussions similaires

  1. Condition if then dans une requête Access
    Par fanie dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/10/2014, 10h15
  2. Condition vrai faux dans une requête
    Par Godard dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/07/2010, 21h29
  3. Problème: condition sur formulaire dans requête
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 23h27
  4. Peut on insérer une condition dans une requête ?
    Par MITCH31 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 22/09/2005, 18h26
  5. Condition dans une requête
    Par fdloisel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2004, 16h55

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