Recherche multiple

Résolu
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 20 juil. 2004 à 17:55
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 21 juil. 2004 à 10:31
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

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 juil. 2004 à 18:18
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 ++
3
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
20 juil. 2004 à 22:26
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
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 juil. 2004 à 23:12
Heu...

C'est pas un peu HS ?

Tu veux en venir ou ?
0
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
21 juil. 2004 à 01:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
21 juil. 2004 à 10:31
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!
0
Rejoignez-nous