Effectuer une recherche à l'aide d'un array
Résolu/Fermé
salimdrame
Messages postés
70
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 juin 2011
-
28 déc. 2009 à 19:46
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 29 déc. 2009 à 12:39
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 29 déc. 2009 à 12:39
A voir également:
- Effectuer une recherche à l'aide d'un array
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Je recherche une chanson - Guide
5 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 déc. 2009 à 10:35
29 déc. 2009 à 10:35
la soluc:
au lieu de rechercher mot par mot dans la boucle foreach avec une query à chaque passage, tu cree une seule query et dans ta boucle tu genres la condition avec des OR pour chaque mot
au lieu de rechercher mot par mot dans la boucle foreach avec une query à chaque passage, tu cree une seule query et dans ta boucle tu genres la condition avec des OR pour chaque mot
$condition=""; //init foreach ($array_chaine as $index=> $keyword){ if($index==0){ $condition.=" champ_xxxxx LIKE '%".$keyword."%'"; }elseif($index>0{ $condition.=" OR champ_xxxxx LIKE '%".$keyword."%'"; //attention ne pas oublier l'espace avant OR ! } } $query="SELECT DISTINCT champ_xxxxxx FROM tatable WHERE ".$condition." "; mysql_query($query); etc...
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
28 déc. 2009 à 20:25
28 déc. 2009 à 20:25
Salut,
la suite ressemblerait à ça :
la suite ressemblerait à ça :
//On crée un tableau $array_chaine = explode('+', $recherche); //On effectue la recherche pour chacun des éléments du tableau foreach ($array_chaine as $ $keyword){ $result = mysql_query('SELECT machin IN truc WHERE condition="'.$keyword.'"'); //...suite du traitement des résultats }
salimdrame
Messages postés
70
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 juin 2011
1
28 déc. 2009 à 22:03
28 déc. 2009 à 22:03
Super! Ça marche mais j'ai un nouveau problème.
J'aimerais afficher un résultat pour plusieurs mots correspondants. Je m'explique : Lorsque dans une suite de mots j'ai trois mots qui font référence au même résultat, ce même résultat apparait 3 fois. Comment faire pour afficher le résultat une fois et ignorer le ou les doublons?
Merci encore
J'aimerais afficher un résultat pour plusieurs mots correspondants. Je m'explique : Lorsque dans une suite de mots j'ai trois mots qui font référence au même résultat, ce même résultat apparait 3 fois. Comment faire pour afficher le résultat une fois et ignorer le ou les doublons?
Merci encore
salimdrame
Messages postés
70
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 juin 2011
1
29 déc. 2009 à 10:19
29 déc. 2009 à 10:19
Quelqu'un aurait une idée? Un suite de solution? Vu que le début a été donné :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salimdrame
Messages postés
70
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
24 juin 2011
1
29 déc. 2009 à 12:39
29 déc. 2009 à 12:39
Merci à tous !
Ça marche à merveille !
Ça marche à merveille !