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

Langage PHP Discussion :

Comment créer un query en SQL avec plusieurs dropbox?


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Mars 2002
    Messages : 230
    Points : 127
    Points
    127
    Par défaut Comment créer un query en SQL avec plusieurs dropbox?
    Bonjour,

    Je veux créer un query en SQL á partir de plusieurs dropbox.
    L'utilisateur choisis les différents critéres qu'il désire (ou non) pour sa sélection.
    L'utilisateur appuie ensuite sur un bouton qui rassemble ses informations afin d'en faire un query.
    Je passe les informations voulues ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($division != '') { $query_elementer['division'] = $division;}
    if ($department != '') { $query_elementer['department'] = $department; }
    if ($title_field != '') { $query_elementer['e_title'] = $title_field; }
    Je compte ensuite le nombre d'éléments de l'array pour en faire mon query:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (count($query_elementer)==0) 
    { $query= select * from table; }
     
    if (count($query_elementer)==1) { 
    foreach  ($query_elementer as $enkelte_query_elementer => $enkelte_query_value)
    $query = 'selct * from table WHERE '. $enkelte_query_elementer .'='. $enkelte_query_value;
    }
    Jusque lá pas de problémes.
    Par contre ca commence avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (count($query_elementer)==1)
    Lá j'ai 2 choix:
    Soit j'écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query= $query . 'where  '. $enkelte_query_elementer .'='. $enkelte_query_value . 'AND';
    Soit j'écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query= $query . 'AND where  '. $enkelte_query_elementer .'='. $enkelte_query_value;
    Mais j'ai un "AND" qui se ballade tout seul!

    Ma question est donc:
    Est il possible d'avoir une sorte d'index dans mon array, oú je pourrais faire quelquechose comme ca?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (count($query_elementer)>1) {
    $query = ´select * from table´;
    foreach ($query_elementer as $i ) {
    if ($query_elementer[$i] == 0) { $query = $query . 'where  '. $enkelte_query_elementer .'='. $enkelte_query_value; }
    else $query = $query . ' AND where  '. $enkelte_query_elementer .'='. $enkelte_query_value; }
    Je me rends bien compte que mon exemple ne tient pas la route, mais c'est la raison pour laquelle je vous écrit!
    Est ce mon approche qui est mauvaise?
    Est ce que je devrais passer mon array dans une deuxiéme array pour lui donner un aspect tredimensionnelle?
    Avez vous une idée, de la lecture, un tutorial?

  2. #2
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Mars 2002
    Messages : 230
    Points : 127
    Points
    127
    Par défaut
    J'ai trouvé!

    Passe la premiére array dans une deuxieme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if 	(count($query_elementer)>1) {
    $i = 0;
    foreach  ($query_elementer as $enkelte_query_elementer => $enkelte_query_value) {
    $query_elementer_array [] = array($enkelte_query_elementer, $enkelte_query_value);
    $i = $i++;
    }
    et ensuite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $query = 'SELECT * FROM ' . $wpdb->prefix . 'sr_employees';	
    for ($interval = 0; $interval < count($query_elementer); $interval++) {
    if ($interval==0) {
    $query = $query ." WHERE ". $query_elementer_array[$interval][0] ."='". $query_elementer_array[$interval][1] ."'";
    }
    else {
    $query = $query ." AND WHERE ". $query_elementer_array[$interval][0] ."='". $query_elementer_array[$interval][1]."'";
    }	
    }
    $query = $query . ' ORDER BY Level ASC, name ASC';
    echo $query;		
    }
    Et voila ma p'tite dame!

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

Discussions similaires

  1. Comment créer une liste d'amis avec SQL
    Par mecmec dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/10/2015, 12h47
  2. Réponses: 6
    Dernier message: 23/11/2012, 23h26
  3. Réponses: 0
    Dernier message: 02/03/2011, 23h26
  4. Réponses: 2
    Dernier message: 22/07/2009, 13h03
  5. Réponses: 1
    Dernier message: 04/05/2005, 11h43

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