[Résolu] Requête MySQL - cumul de champs dans la condition


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

[Résolu] Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 8:19

Bonjour,

Soit une table avec 3 champs (champ1, champ2, champ3) et un formulaire de recherche contenant juste un input text et un bouton de validation.

J'aimerais afficher les résultats correspondants à la condition suivante :
Version php : preg_match('#'.$_GET['recherche'].'#i', $champ1.$champ2.$champ3);
Version MySQL : ???

Je cherche donc la syntaxe correct exprimant : WHERE $champ1.$champ2.$champ3 LIKE '%".$_GET['recherche']."%'

D'avance merci :wink:
Dernière édition par dop20vt le Lun Juin 22, 2009 10:27, édité 1 fois.


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2217
Inscription: 10 Avr 2005

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 9:05

Salut,

Par cumul tu entends bien concaténation et pas addition ?


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 9:07

dorian53 a écrit:Salut,

Par cumul tu entends bien concaténation et pas addition ?


Exactement !!

Je veux le texte formé par champ1 espace champ2 espace champ3

EDIT : Merci beaucoup !!!!!!

C'est donc CONCAT(champ1, ' ', champ2, ' ', champ3) like '%$recherche%'
Dernière édition par dop20vt le Lun Juin 22, 2009 9:14, édité 1 fois.


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 9:13

en moche : ... or ... or ...
sinon il vaut mieux passer par un index fulltext : AND MATCH (champ1, champ2, champ3) AGAINST ('".$texte."')


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2217
Inscription: 10 Avr 2005

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 9:15

Tu as la fonction CONCAT sur MySQL.
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat

Après tu peux faire une sous-requête par exemple ou un WHERE.


Exemple :

SELECT CONCAT( con_nom, ' ', con_prenom )
FROM `contact`


Edit : corrigé.
Dernière édition par dorian53 le Lun Juin 22, 2009 10:11, édité 2 fois.


dop20vt
WRInaute impliqué
WRInaute impliqué
 
Messages: 586
Inscription: 23 Juin 2007

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 9:44

Pour répéter mon précédent EDIT

Merci beaucoup !!!!!!

C'est donc CONCAT(champ1, ' ', champ2, ' ', champ3) like '%$recherche%'


Cette méthode fonctionne très bien !!

Merci à tous pour votre aide :)

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 9:45

@dorian53 la fonction CONCAT, c'est du MYSQL. Pas du PHP hein.
Tu peut très bien l'utiliser en faisant des requêtes sql avec n'importe quel langage : PHP, Python, Ruby, Java, ... à condition que cela soit sur un serveur MySQL (ou qui gère cette fonction).


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2217
Inscription: 10 Avr 2005

Re: Requête MySQL - cumul de champs dans la condition

Message le Lun Juin 22, 2009 10:09

Oui oui évidement... L'esprit était ailleurs.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité