Problème requete condition db_select

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Salut à toute la communauté,

Je vous fais part d'un problème de requête SQL avec la DAL de Drupal.

Voici le bout de code :

$query = db_select($table, 'c')
->fields('c');

$query->condition($liste_1, $input_1, 'LIKE');

J'aimerai effectuer un like avec %mot_à_rechercher% (ici c'est $input_1) afin que je puisse rechercher aussi bien dans un mot qu'un début ou une fin.

Ma question est comment effectué une requête avec une condition LIKE %mot% sous drupal 7 ? j'ai trouvé peu voir aucune réponse en parcourant le web.

Je vous remercie par avance

Forum : 
Version de Drupal : 
Tags : 

Bonjour,

il faut sans doute regarder du côté des API : http://api.drupal.org/api/drupal/includes--database--database.inc/functi...

http://drupal.org/node/310086

Il semble qu'avec une requête du type

$query = db_select($table', 'c');
$query->condition($liste_1, $input_1, 'LIKE');

ça puisse fonctionner, si les '%' sont dans la chaîne $input_1

Il faut peut-être "échapper" le caractère '%' par lui-même (c'est à dire utiliser %%)

D'accord, je te remercie je vais essayer. L'API je la consulte depuis longtemps elle n'apporter hélas que peu souvent de réponse.

EDIT : c'est bon sa fonctionne, il faut bien échapper % par lui même, ce que je n'avais pas fait.

$query->condition($liste_1, '%%'.$input_1.'%%', 'LIKE');

Je te remercie de ton aide.