Recherche SQL et accents

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recherche SQL et accents

Re: Recherche SQL et accents

par Therion57 » 02 août 2010, 10:17

J'ai changé le charset de la page php pour charset=iso-8859-1. Mais du coup l'affichage des accents ne se fait plus bien et je n'obtient de résultat de recherche ni pour géant, ni pour geant, mais seulement pour géants.

Re: Recherche SQL et accents

par stealth35 » 01 août 2010, 22:26

tu peux changer : Interclassement pour la connexion MySQL, c'est un menu déroulant :wink:
par contre au niveau de ton php faut etre que en iso-8859-1

Re: Recherche SQL et accents

par Therion57 » 01 août 2010, 21:54

Image

Voici une copie de mon écran avec les lignes orange.

Re: Recherche SQL et accents

par stealth35 » 01 août 2010, 21:24

Merci pour le lien ça a fait apparaitre de nouveaux onglets. Toutefois la liste des variables n'est pas modifiable... j'ai pourtant tous les privilèges sur cette base puisque c'est la mienne. Y a t'il un moyen de débloquer les modifications ?
lequelles sont en orange ?
de toute facon c'est assez simple c'est sois tout en latin1 (apache - php - mysql) sois tout en utf8, de nos jour c'est quand même plus recommandé de travaillé en utf8, si a un moment y'en a 1 qui st diffèrent t'aura des soucis :wink:

Re: Recherche SQL et accents

par Therion57 » 01 août 2010, 21:08

Merci pour le lien ça a fait apparaitre de nouveaux onglets. Toutefois la liste des variables n'est pas modifiable... j'ai pourtant tous les privilèges sur cette base puisque c'est la mienne. Y a t'il un moyen de débloquer les modifications ?
Sur cette base de test il y a d'ailleurs un joyeux mélange de jeux de caractères vu les multiples tentatives que j'ai fait en testant différentes possibilités... Je n'ai toutefois pas touché à ma "vraie" base de données.

La base de mon serveur chez OVH, quand à elle, me fait une erreur 404 sur cette même recherche... Mais j'imagine que si j'importe ma base de test sur le serveur, les interclassements seront conservés ? Bref, c'est vraiment un domaine où je patauge :?

Re: Recherche SQL et accents

par stealth35 » 01 août 2010, 19:59

Je ne suis pas sûr d'avoir compris :oops: Je ne trouve pas d'onglet "variable" dans phpmyadmin. J'ai bien les interclassements en latin1 (latin1_swedish_ci) dans les tables et dans l'accueil et le Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) au dessus ne comporte pas de lien pour le modifier.

dans l'accueil y'a un onglet variable normalement : http://localhost/phpmyadmin/server_variables.php
tu peux changer : Interclassement pour la connexion MySQL, c'est un menu déroulant :wink:

Re: Recherche SQL et accents

par Therion57 » 01 août 2010, 18:05

Je ne suis pas sûr d'avoir compris :oops: Je ne trouve pas d'onglet "variable" dans phpmyadmin. J'ai bien les interclassements en latin1 (latin1_swedish_ci) dans les tables et dans l'accueil et le Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) au dessus ne comporte pas de lien pour le modifier.

Re: Recherche SQL et accents

par stealth35 » 01 août 2010, 17:00

Oui j'ai essayé. Et la c'est encore plus catastrophique puisque si je fais une recherche directement dans la base par exemple sur le mot "géant", ça ne marche ni avec 'geant' ni avec 'géant' mais seulement avec "géants". Il faut dire que c'est comme ça qu'il est enregistré dans la base. Il y a une erreur quelque part ?
met ta connection en latin1, dans l'onglet "variable" de phpmyadmin tout devrai être en gris

Re: Recherche SQL et accents

par Therion.57 » 01 août 2010, 06:54

Oui j'ai essayé. Et la c'est encore plus catastrophique puisque si je fais une recherche directement dans la base par exemple sur le mot "géant", ça ne marche ni avec 'geant' ni avec 'géant' mais seulement avec "géants". Il faut dire que c'est comme ça qu'il est enregistré dans la base. Il y a une erreur quelque part ?

Re: Recherche SQL et accents

par stealth35 » 31 juil. 2010, 23:50

hello, t'as essayé de faire ta requête direct dans phpmyadmin ?

Recherche SQL et accents

par Therion.57 » 31 juil. 2010, 22:32

Bonjour,
J'ai passé mon après-midi à m'arracher les cheveux et à chercher une réponse sur Internet , sans succès.

Lors d'une requête SQL avec LIKE, je voudrais que le terme de la recherche soit insensible à la casse, ce qui est le cas, mais également insensible aux accents, ce qui ne fonctionne pas... A priori d'après ce que j'ai compris ce serait un problème de collation.

Mes tables sont en latin1_swedish_ci qui est sensé être insensible aux accents. Toutefois la page d'accueil de phpmyadmin m'indique 'Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)' et ma page php ne s'affiche normalement que si je mets "charset=utf8" dans l'entête. Faut-il chercher de ce coté ?

Ma requête est :
"SELECT * from legend WHERE titre LIKE '%$req%'"
; où $req est le résultat du champs de recherche ayant juste subit une fonction "trim".
J'ai tenté d'ajouter des CONVERT à ma requête mais sans grand succès... J'ai pris le problème par l'autre bout avec des regex, mais avec le même résultat.

Pour info je me sers de mysql 5.0.51a.

Quelqu'un a t'il une idée sur la façon de procéder ?