[PHP] moteur de recherche [RESOLU]

bonjour, j’ai fait un moteur de recherche en php qui va scruter une base de donnée sql.
jusque la tt va bien. je fait des like et ca fonctionne.
j’ai fait un check “mot exacte” pour que si il le coche, le mot rechercher sera exactement ca. donc j’ai trouvé comme solus de mettre un blanc a gauche te droite du mot…
donc ca ca marche, mais a une condition, que le mot trouvé ne soi pas le premier. cas a ce moment la, il n’y a pas d’espace et donc, il ne trouve pas…

je sais pas si G ete assez claire. si qq’un a une idee

merci

>> je sais pas si G ete assez claire. si qq’un a une idee

une fille qui fait de la progra :o wahou!

Sinon tu peux réexpliquer ton problème? Et un exemple pour :

"cherche midi"

?

ok, pour la chaine "cherche midi"

si l’utilisateur ecrit cherche et qu’il ne coche pas mot exacte, alors la chaine sortira en reponse
mais si il ecrit cherche et qu’il coche la case mot exacte, alors il n’y a pas de reponse.

explication, qd on coche la case mot exacte, je met un blanc de chaque coté du mot, pour etre sur qu’il me donne pas des reponse si par exemlpe j’avais “achercher” dans la base.

le prob, c que avec cette metode, si le mot est en debut de ligne, il n’y a pas de blanc a gauche. donc la chaine ne sort pas en reponse. or, c’est bien une reponse valide.

le probleme ne se pose pas pour les mots suivant !!

Ah d’accord.

En gros tu voudrais une regexp du genre

/\bcherche\b/

et pas

/.cherche./

Et tu as songé à l’opérateur REGEXP de mySQL?

heu… dans une requete ca marche??? parce ca a pas l’air

select * from mt_entry where entry_title like ‘/\bcherche\b/’ ); ???

mais je fait ca pi etre mal !!!!

Recherche “wildards SQL”, en SQL pur, les wildcards sont % et _ equivalents à * et ? en DOS.
sur MSDN, j’ai vu qu’en SQL server on pouvait utiliser [] pour spécifier un ensemble de cractères, ce qui pourrait répondreà ta question, mais n’est peut-être pas Compatible ac toutes les bases. il y a peut-êter une solution spécifique à la base que tu utilise.
avec des [] la solution serait du genre
like “%[ .,;:]cherche[ .,;:]%”
mais j’ai pas testé, (pas de sql chez moi)

rah la la

Ces jeunes

Ca ne sait plus se servir d’une documentation (moi non plus d’ailleurs, genre)

http://dev.mysql.com/doc/mysql/en/string-c…-functions.html

tu cherche REGEXP (avec la casse des caractères à ON) et tu auras ton bonheur

bon ce sont des expressions régulières façon Posix

http://dev.mysql.com/doc/mysql/en/regexp.html

waip, il doit y avoir moyen que tu trouve ton bonheur là :REGEXP MySQL
et un peu aussi là : pattern matching

par contre je sais pas pour quelle version de mysql, ça marche

arf : grillé par Sans-Nom
mais moi c de liens vers la doc française, si l’anglais pose pb … :neutre:

L’anglaise est toujours plus à jour :slight_smile:
Spa pour rien qu’en France on dit que c’est dans les vieux pots qu’on fait la bonne soupe!

([] <-- )