Submitted by grocko_t on
Bonsoir, je développe actuellement un moteur de recherche pour drupal.
je suis sur la réalisation du script de la requete sql (traitement des données reçus par le formulaire vers la bonne requete sql).
j'ai donc une requete sql "statique" :
$query = db_select('users_info', 'u')
->fields('u', array('id_member', 'postal', 'city', 'nom', 'prenom', 'Branche', 'societe'))
->condition('postal', array($postal), 'IN')
->condition('branche', array($branche), 'IN')
->execute();
Je voudrais la rendre dynamique : en fonction des informations reçus, ajouter les conditions nécessaires.
comme ceci :
$i = 0;
$start_query = db_select('users_info', 'u')
->fields('u', array('id_member', 'postal', 'city', 'nom', 'prenom', 'Branche', 'societe'));
$condition = array();
$condition[0] = ->condition('postal', array($postal), 'IN');
$condition[1] = ->condition('Branche', array('Avocat'), 'IN');
$query = $start_query;
while ($conditon[$i])
{
$query .= $condition[$i];
$i++;
}
$query->execute();
Hors j'ai une erreur d'operateur sur :
$condition[0] = ->condition('postal', array($postal), 'IN');
$condition[1] = ->condition('Branche', array('$branche'), 'IN');
Alors voila, je ne sais pas si c'est ne serais ce que possible ou si c'est une erreur de ma part qqpart.
(Je préfère poser la question avant de faire chaque requete au cas par cas; au cas ou ;) )
Merci d'avance,
db_select revoie un objet,
Permalien Soumis par hles le 4 Décembre, 2012 - 19:29
db_select revoie un objet, vous ne pouvez pas faire
$query .= $condition[$i];
ok. Dans ce cas est il
Permalien Soumis par grocko_t le 4 Décembre, 2012 - 20:24
ok.
Dans ce cas est il possible de faire comme ceci?
$query = db_select('users_info', 'u')
->fields('u', array('id_member', 'postal', 'city', 'nom', 'prenom', 'Branche', 'societe'));
if ($postal != NULL)
$query->condition('postal', array($postal), 'IN');
if ($branche != NULL)
$query->condition('Branche', array($branche), 'IN');
$query->execute();
A vous d’essayer, regardez la
Permalien Soumis par hles le 4 Décembre, 2012 - 20:48
A vous d'essayer, regardez la documentation http://drupal.org/node/310075
Bonjour, apres avoir bien lu
Permalien Soumis par grocko_t le 7 Décembre, 2012 - 14:49
Bonjour,
apres avoir bien lu le tuto que vs m'avez donnée, et après avoir essayer les methodes proposées, je n'ai pas su generer ma requete dynamique.
voila le code :
$query = db_select('users_info', 'u');
$query->condition('u.postal', array($postal), 'IN');
$query->fields('u', array('id_member', 'postal', 'city', 'nom', 'prenom', 'Branche', 'societe'));
$query->execute;
pour moi ma requete est bonne, mais je n'arrive pas à récupérer ce qu'il y a dedans.
je sais plus quoi faire la, a part devoir faire mes requete une par une mais sa ferais un peu moche(ya dans les 20 requêtes donc 20 if/else, c'est lourd).
D'avance, merci.
Vous recupererz ce qu’il y a
Permalien Soumis par hles le 7 Décembre, 2012 - 16:06
Vous recupererz ce qu'il y a dans la requete comme ceci:
Une erreur de ma part. je
Permalien Soumis par grocko_t le 7 Décembre, 2012 - 17:36
Une erreur de ma part.
je faisais bien le $query->execute et la boucle foreach.
Mais je le faisais sur $query (par ailleurs je ne récupérais pas le retour de la requete --')