Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2011, 11h45   #1
Membre régulier
 
Inscription : mars 2002
Messages : 227
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : mars 2002
Messages : 227
Points : 91
Points : 91
Envoyer un message via ICQ à jean christophe
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 :
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 :
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 :
1
2
 
if (count($query_elementer)==1)
Lá j'ai 2 choix:
Soit j'écris:
Code :
1
2
 
$query= $query . 'where  '. $enkelte_query_elementer .'='. $enkelte_query_value . 'AND';
Soit j'écris:
Code :
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 :
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?
__________________
Sincérement
Jean-Christophe
jean christophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 15h06   #2
Membre régulier
 
Inscription : mars 2002
Messages : 227
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : mars 2002
Messages : 227
Points : 91
Points : 91
Envoyer un message via ICQ à jean christophe
J'ai trouvé!

Passe la premiére array dans une deuxieme:
Code :
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 :
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!
__________________
Sincérement
Jean-Christophe
jean christophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h02.


 
 
 
 
Partenaires

Hébergement Web