Spidetra
vendredi 26 mai 2006 à 16:41
CITATION(Lentreprenaute @ jeudi 25 mai 2006, 12h32)

mon champ mot contient plusieurs mots comme je ne veux afficher que le mot recherché le code suivant me retourne tout le contenu de chaque champ contenant ABC, une idée, on est toujours dans des requetes mysql ou l'on doit passer par php.
Pour en revenir à ta dernière question :
Tu vas effectivement être obligé de récupérer la totalité de ton champ et faire un traitement en Php. Je suppose que tu as un séparateur de mot et que tu pourras faire un split dessus.
Comme tu as plusieurs mots dans ton champ la syntaxe :
SQL
LIKE 'ABC%'
ne marche plus. Tu seras obligé d'utiliser :
SQL
LIKE '%ABC%'
Donc :
- tu ne détecte plus les mots qui commencent par ABC, mais les mots qui contiennent ABC
- Si tu as indexer ton champ, l'index ne sera pas utilisé avec la 2° syntaxe => perte de performance
Une structure possible aurait été :
- une table dictionnaire : IDMot, Mot ( unique, fulltext ). Un seul mot par ligne
- une table user : IDUser, userName
- une table mot2user : IDMot, IDUser