Recherche multiple [Résolu]

Signaler
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
coockiesch
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
Hello!
J'aimerai faire une recherche dans plusieurs champs d'une table MySQL, j'ai ma requête comme ceci (pour un champ):
$sql_query = "SELECT caption FROM table WHERE texte LIKE '%mot1%' AND texte LIKE '%mot2%'"

Comment est ce que je dois faire pour recherche dans plusieurs champs si je ne veut pas créer de requête trop longue?

Merci bcp

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!

5 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut ;-)

La longueur de la requête n'influe pas sur sa rapidité de traitement.

Perso après avoir vu ta requête :

$sql_query = "SELECT caption FROM table WHERE texte LIKE '%mot1%' AND texte LIKE '%mot2%'"

je ferais un truc du genre

$sql_query = "SELECT caption FROM table WHERE (texte LIKE '%mot1%' AND texte LIKE '%mot2%') OR (champ2 LIKE '%mot1%' AND champ2 LIKE '%mot2%')"

etc...

Libre à toi de changer les opérateurs en fonction du résultat attendu.

a ++
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
Regarde, ce n'est pas la longueur qui compte, regarde ma requete :

"SELECT a.tournament_id,a.team_id,c.game_id,c.status,b.name AS team_name,d.name AS game_name,b.single_user FROM ls_tournament_teams a, ls_teams b, ls_tournaments c, ls_games d WHERE a.team_id=b.team_id AND a.tournament_id=c.tournament_id AND c.game_id=d.game_id AND a.team_id IN (SELECT team_id FROM ls_team_players WHERE player_id='".$session_data['player_id']."') ORDER BY c.status ASC, a.subscribed DESC"

Ou encore avec plus de subqueries imbriquées

"SELECT a.level,b.name FROM ls_team_players a, ls_teams b WHERE a.team_id IN (SELECT team_id FROM ls_teams WHERE team_id NOT IN ( SELECT team_id FROM ls_tournament_teams ) AND single_user=0) AND a.player_id='".$session_data['player_id']."' AND a.team_id=b.team_id"

niac niac niac :P

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Heu...

C'est pas un peu HS ?

Tu veux en venir ou ?
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
Que la longueur n'importe peu...

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Merci!

@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!