Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1241 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  recherche avec accent ou sans

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recherche avec accent ou sans

n°1413734
mbarekh
Posté le 26-07-2006 à 12:10:47  profilanswer
 

Bonjour,
j'ai fait un metit moteur de recherche dans mon site web. Sauf que ce moteur de recherche ne gère pas les accents, dans le sens ou chercher "bebe" ne retourne pas "bébé" et vice versa.
Il y a certainement un moyen de contourner ça.
Quelqu'un a une idée?
merci

mood
Publicité
Posté le 26-07-2006 à 12:10:47  profilanswer
 

n°1413736
Sh@rdar
Ex-PhPéteur
Posté le 26-07-2006 à 12:12:30  profilanswer
 

avec un index fulltext les accents sont ignorés
 
sinon faudrait doubler ta clause where (avec accents OU sans accents)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1413738
mbarekh
Posté le 26-07-2006 à 12:15:07  profilanswer
 

La base de donnees est mysql, je n'ai pas le type fulltext. Il y a un equivalent à ça en mysql?

n°1413739
mbarekh
Posté le 26-07-2006 à 12:17:18  profilanswer
 

et pour la deuxième solution elle ne marche plus dès que j'ai un mot avec deux "e", l 'un avec un accent et pas l 'autre.
 par exemple si j'ai dans ma base "bébe", ni "bebe" ni "bébé" ne me retourneront "bébe"

n°1413744
Sh@rdar
Ex-PhPéteur
Posté le 26-07-2006 à 12:22:18  profilanswer
 

regarde dans la doc mysql comment utiliser les recherches fulltext
 
et si tu compare les 2 chaines sans accents ça doit marcher (tu peux utiliser une regexp)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1413820
omega2
Posté le 26-07-2006 à 13:51:51  profilanswer
 

mbarekh a écrit :

La base de donnees est mysql, je n'ai pas le type fulltext. Il y a un equivalent à ça en mysql?


fulltext, c'est au niveau des index, pas au niveau du type de colone. ;)
Voir manuel de mysql pour plus d'infos.

n°1413847
mIRROR
Chevreuillobolchévik
Posté le 26-07-2006 à 14:15:56  profilanswer
 

like ?

n°1413918
mbarekh
Posté le 26-07-2006 à 15:13:00  profilanswer
 

Oui ça marche avec fulltext enfin quand je fais directement la requete sur phpmyadmin. Mais quand je fais la requete à partir de mon site web ça ne marche pas.  
J'ai essayé de faire afficher la requete que mon site passe à la base pour mieux comprendre. Et là en voulant chercher le mot "bébé" par exemple, je vois le mot "béb&eacute" dans la requête.
J'ai compris alors que c'était un problème de charset.
Ma base est en "fr-iso-8859-1" alors que mes fichiers html sont en utf-8.
Y'at'il un moyen qui peut corriger ça? Par exemple une fonction qui fait la conversion?

n°1413926
omega2
Posté le 26-07-2006 à 15:27:42  profilanswer
 
n°1413941
mbarekh
Posté le 26-07-2006 à 15:44:36  profilanswer
 

j'étais imprécis, excuse moi. On fait ce que je voyais ce n'était pas "b&eacute,bé" mais plutot : "bébé"
 
je est mes fichiers sont bien en utf-8 et ma base en iso

mood
Publicité
Posté le 26-07-2006 à 15:44:36  profilanswer
 

n°1413948
Sh@rdar
Ex-PhPéteur
Posté le 26-07-2006 à 15:51:51  profilanswer
 

en changeant le charset de la table ça devrait aller (fais une sauvegarde avant :p )


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1413954
mbarekh
Posté le 26-07-2006 à 15:56:48  profilanswer
 

oui mais vers quelle charset. avec utf-8 ça ne marche pas aussi.

n°1413959
omega2
Posté le 26-07-2006 à 16:00:23  profilanswer
 

mbarekh > Regarde bien ce qui est écrit dans la page que je t'ai indiqué au dessus. ;)
C'est la fonction qui permet de passer en php d'un format UTF-8 à un format ascii.


Message édité par omega2 le 26-07-2006 à 16:01:09
n°1413965
Sh@rdar
Ex-PhPéteur
Posté le 26-07-2006 à 16:03:59  profilanswer
 

tu pourrais pas nous filer une url pour qu'on teste ?
 
quand tu dis que tes fichiers sont en utf-8 tu parle des sources, mais tu génère de l'html dans quel encodage ?
 
sinon ça serait plutôt l'inverse, lire de l'iso pour en faire de l'utf8 donc utf8_encode() :p


Message édité par Sh@rdar le 26-07-2006 à 16:04:08

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1413995
mbarekh
Posté le 26-07-2006 à 16:35:50  profilanswer
 

une url ca ne marchera pas car il y a un parefeu qui bloques ls requetes venant de l'exterieur. (je ne suis pas chez moi).mais sinon quand je sis queles fichiers sont en tuf_ ca voudrait dire que dans mes source j'ai:
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
sinon dans le menu affichage->codage c'est selection automatique qui coché

n°1414000
Sh@rdar
Ex-PhPéteur
Posté le 26-07-2006 à 16:40:02  profilanswer
 

et le serveur envois bien la même chose dans les entêtes ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1414008
omega2
Posté le 26-07-2006 à 16:52:23  profilanswer
 

mbarekh > Pour envoyer une page en utf-8, il y a trois chôses à faire :
1) encoder en utf-8 toutes les chaines qui seront envoyé au client (utf8_encode par exemple pour les chaines qui étaient en ascii)
2) envoyer le header correspondant à l'encodage utf-8 choisit (c'est faisable en php, mais ca peut aussi être réglé au niveau du serveur ce qui permet de ne pas le faire en php)
3) mettre la balise "meta" "content-type"
 
Si l'une des trois étapes n'est pas faite ou pas faite entiérement, alors l'affichage des caractéres risque d'être loupé.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  recherche avec accent ou sans

 

Sujets relatifs
Problèmes d'accent sous MySqlRecherche de boucles
Crée une Bdd et l'exploiter avec un outil de rechercheAjouter/Cacher text recherche technique
Recherche de mot dans un composant texte SWINGRecherche d'une DLL
[Access] Recherche sur un champs à partir d'une listeRecherche de l'adresse d'une cellule
[resolu] [batch] recherche chaine avec findstrmoteur de recherche
Plus de sujets relatifs à : recherche avec accent ou sans


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR