Problème de (je pense) interclassement.

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 : Problème de (je pense) interclassement.

Re: Problème de (je pense) interclassement.

par SinBert » 02 janv. 2010, 18:02

Je m'excuse d'avance du double post.

Ce post pour signaler que je viens de trouver la réponse par moi même après de longues recherches sur google.
Explication pour ceux qui (éventuellement) connaitraient le même souci :

Mon souci était donc de faire des requêtes (quel qu'elles soient) avec des caractères tels que ž, ø, ù, à ...etc
La solution était en fait très simple. L'interclassement que j'avais mis ne correspondait pas à mes attentes.

La solution a donc été de changer cet interclassement et de mettre le latin1_swedish_ci équivallent (si j'ai bien compris) à l'ISO-8859-1.

Une fois ce changement effectué, je n'ai plus eu de problème et tout marchait à merveille. :D

Merci beaucoup à tout ceux qui ont pris le temps de me répondre ci-dessus. ;)

*Résolu*

Re: Problème de (je pense) interclassement.

par SinBert » 31 déc. 2009, 17:19

Code initial :
<?php
$name = "že1kør";
$sql="UPDATE mf_ranking SET lvl=35 WHERE name='{$name}' AND game='ems'";
echo $sql;
?>
Réponse :
UPDATE mf_ranking SET lvl=35 WHERE name='že1kør' AND game='ems'
J'espère avoir répondu à ton attente. La requête semble correcte.

Comment cela se fait il qu'elle ne marche pas alors?

EDIT :
Je viens de remarquer que les caractère spéciaux ont été changé dans ma base de donnée par des "?".
Donc, l'entrée qui contenait "že1kør" vaut maintenant "?e1k?r".
Bref, c'est un assez gros problème pour moi. N'auriez vous pas une solution? Un interclassement qui accepte les "ž", "ø" ...etc?

Merci encore.

Re: Problème de (je pense) interclassement.

par jojolapine » 31 déc. 2009, 16:54

Quand je parle de requête générée, c'est un echo de cette requête, genre:
<?php
$sql="UPDATE ma_table SET lvl=35 WHERE name='{$name}' AND game='ems'";
echo $sql;

Re: Problème de (je pense) interclassement.

par SinBert » 31 déc. 2009, 16:24

Bonjour,

Les données viennent directement de ma BDD. Mais à la base, s'était un formulaire, oui.

Que veux tu dire par encodage?

Un exemple de requête qui ne marche pas :
UPDATE ma_table SET lvl=35 WHERE name='{$name}' AND game='ems'
$name est une variable qui contient les caractères spéciaux. (exemple : "že1kør" ou encore : "Radiùm")
NB : cette requête fonctionne pour toutes les entrées qui ne contiennent pas de caractères spéciaux.

Cette requête est comme "ignorée" dans chaque cas où il y a un caractère spécial.

Re: Problème de (je pense) interclassement.

par jojolapine » 31 déc. 2009, 15:34

bonjour,
D'où viennent les données que tu souhaites modifiées? formulaire, etc... ?
Quel est l'encodage de ces dernières?
Enfin un exemple de requête générée qui ne fonctionne pas?

Problème de (je pense) interclassement.

par SinBert » 31 déc. 2009, 13:37

Bonjour à tous,

j'ai un souci avec des données de ma base qui ne s'updatent pas quand elles devraient.
Les données qui ne s'updatent pas quand elles devraient contiennent des caractère comme "ù", "ø", "ž"... etc
Seul les données contenant des caractères spéciaux ne s'updatent pas. J'en ai donc conclu que ceux-ci en étaient la cause.

Après quelques recherche sur Google, j'ai trouvé que le problème était peut-être l'interclassement de mon champ dans ma base de données.
Actuellement, celui-ci est latin1_swedish_ci.

Mes questions sont donc :
  • Est-ce bien l'interclassement qui pose problème dans ce cas?
  • Si oui, comment y remédier?
Merci d'avance à tous ! ;)