CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourHigh-Tech
    • Actus High-Tech
    • Hardware
    • Smartphones
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • High-Tech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

les accents dans une recherche php/sql..

Ez-Toni
Ez-Toni
Niveau 10
18 juillet 2008 à 17:16:17

Salut :)

je suis en ce moment en train de créer un petit champ de recherche php/sql sur la boutique en ligne de mon travail.

je me heurte à l'éternel problème d'accents (effectivement j'ai vu pas mal de sujets là dessus sur des forums).

Alors tout simplement, dans mon cas, l'utilisateur entre un ou des mots, et une requette SQL de type SELECT...WHERE...LIKE recherche le mot dans la table des articles (champ "nom" et "descriptif").

Alors en lisant les topics j'ai trouvé cette fonction PHP :

function suppraccents($chaine)
{
return strtr($chaine,

'àâäåãáÂÄÀÅÃÁæÆçÇéèêëÉÊËÈïîìíÏÎÌÍñÑöôóòõÓÔÖÒÕùûüúÜ
ÛÙÚÿ',

'aaaaaaaaaaaaaacceeeeeeeeiiiiiiiinnoooooooooouuuuu
uuuy');
}

c'est moche ici ^^ mais ça marche.

j'ai donc supprimé les accents du/des mots recherchés
Mais maintenant comment faire la même chose dans ma requette SQL ? o_o
je ne peux pas utiliser cette fonction PHP dans ma requette, or j'ai également des mots à accents dans la base de données

par exemple, si l'utilisateur entre le mot "caméra"
la première étape de la recherche sera de transformer ce mot en "camera"

le probleme est que
SELECT id FROM articles WHERE nom LIKE "%$mot%"
me sortira bien les "cameras" mais pas les "caméras"

enfin vous voyez ce que je veux dire :rire:

si vous pouvez m'aider, je suis carrément bloqué là =/

Ez-Toni
Ez-Toni
Niveau 10
18 juillet 2008 à 17:36:04

pour résumer mon pavé ; j'aimerais créer une requette SQL insensible aux accents ^^

deepblue
deepblue
Niveau 16
18 juillet 2008 à 19:04:32

quand tu fait ta requete :
champ LIKE '%mot_accentué%' || '%mot_non_accentue%'

deepblue
deepblue
Niveau 16
18 juillet 2008 à 19:05:11

champ LIKE '%mot_accentué%' || champ LIKE '%mot_non_accentue%'

Ez-Toni
Ez-Toni
Niveau 10
19 juillet 2008 à 10:59:22

:hum: lol

je m'en vais tout de suite tester ça ^^ merci beaucoup pour la réponse.

mais il resterais tout de même le cas des erreurs d'accents, du genre "télephone"

sinon dans un article sur un blog j'avais trouvé une requête du genre :

... WHERE (nom LIKE CONVERT(_utf8 '%" . $mot . "%' USING utf8) COLLATE utf8_general_ci

apparemment la requête SQL serait alors incessible aux accents :doute: , je teste ça également

deepblue
deepblue
Niveau 16
19 juillet 2008 à 12:32:30

hum, ça me parait bizarre ça ça l'air de chnager l'encodage en fait, mais je vois pas pourquoi ça virait les accents. A tester alors :p)

Ez-Toni
Ez-Toni
Niveau 10
19 juillet 2008 à 12:37:17

oui je n'étais pas du tout au courant mais apparemment en changeant en utf8, les accents ne sont pas pris en compte,

je viens de tester et ça fonctionne ^^

j'ai retrouvé le lien où ils proposent cette solution si ca intéresse : http://www.ab-d.fr/date/2008-06-21/

merci :)

Ez-Toni
Ez-Toni
Niveau 10
19 juillet 2008 à 12:42:08

ah et je précise un petit truc que je viens de remarquer :

j'ai pensé qu'avec cette solution, la fonction php de suppression des accents devenait inutile, hé bien non si je l'enlève il ne me trouve plus aucun résultats. :(

je dois donc utiliser les 2.

l'essentiel c'est que ça marche :rire:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment