cerhu > linux.debian.user.french

ajh-valmer (03/02/2020, 14h30)
Bonjour,

Depuis peu, lorsque j'INSERT ou UPDATE une table MySQL,
via scripts PHP et SQL, je mets le montant : "30€"
et apparait dans le champ via phpmyadmin : "30¤".
Pareil si j'écris "30?".

Pourtant, si j'interroge la table (SELECT),
apparait bien dans le navigateur "30?".

L'interclassement est UTF8_general_ci.
Si je mets : latin1_general_ci, pareil.

Ce problème fait suite à un upgrade de mysql.

Merci,

A. Valmer
ajh-valmer (03/02/2020, 22h10)
On Monday 03 February 2020 19:16:54 G2PC wrote:
> >> Et si tu fais une requête de sélection avec le terminal,
> >> ça retourne quoi comme réponse ? :

> > 2020 : 20? alors qu'avec phpmyadmin = 2020 : 20¤


> Étrange, PhpMyAdmin devrait prendre en charge UTF-8.
> Et ta page web elle affiche le même symbole, et, elle est en UTF-8 ?


Si je mets UTF-8, j'ai "2020 : 20?"

Sinon, ma page est en iso-8859-15.
[..]
ajh.valmer (04/02/2020, 18h40)
On Tuesday 04 February 2020 05:34:20 G2PC wrote:
> D'après ce que tu écris, PHPMyAdmin retournerait le symbole en tant que
> ISO 8859-1 ? [..]


Page Web de mon site, code PHP :
echo mb_internal_encoding();
UTF-8

Merci pour tous ces commentaires + liens.

Avant "€" m'affichait bien ?
Pourquoi plus maintenant ?

J'ai bien essayé :
Si UTF-8 = "?"
Si ISO 8859-1(5)= "¤".

Et pourquoi si champ phpmyadmin = 30¤ (et pas €)
mon site affiche correctement 30 ? ?
Et mysql en mode console, champ = 30 ?

Lorsque je fais un update ou insert sql,
cotisation='30 €' qui devient sous phpmyadmin : 30¤

Serait-ce phpmyadmin ?

Bonne soirée,
[..]
G2PC (04/02/2020, 19h00)
> Page Web de mon site, code PHP : [..]
> Et pourquoi si champ phpmyadmin = 30¤ (et pas €)
> mon site affiche correctement 30 ? ?
> Et mysql en mode console, champ = 30 ?
> Lorsque je fais un update ou insert sql,
> cotisation='30 €' qui devient sous phpmyadmin : 30¤
> Serait-ce phpmyadmin ?
> Bonne soirée,


Tu as omis de vérifier la structure de ta base de données, tu peux faire
un export de la structure ?
De la table concernée au moins ?
Vérifie l'encodage de la table et de la colonne, ça donne quoi ?
Erwann Le Bras (09/02/2020, 12h10)
Ohhh!

on ne mets jamais l'unité dans une base de données...
on inscrit simplement les montants en base, c'est à la présentation des
données qu'on rajoute l'unité, ce qui permet de les manipuler comme on veut.

Erwann

Le 03/02/2020 à 13:28, ajh-valmer a écrit :
[..]
Jean-Michel OLTRA (09/02/2020, 13h50)
Bonjour,

Le dimanche 09 février 2020, Erwann Le Bras a écrit...

> on ne mets jamais l'unité dans une base de données...
> on inscrit simplement les montants en base, c'est à la présentation des
> données qu'on rajoute l'unité, ce qui permet de les manipuler comme on veut.


Tu peux la mettre dans une colonne à part, ou via un id dans une table
séparée. C'est quand même préférable de savoir dans quelle unité fut
enregistré ledit montant.
Erwann Le Bras (24/02/2020, 11h50)
Le 09/02/2020 à 12:32, Jean-Michel OLTRA a écrit :
> Bonjour,
> Tu peux la mettre dans une colonne à part, ou via un id dans une table
> séparée. C'est quand même préférable de savoir dans quelle unité fut
> enregistré ledit montant. Tout-a-fait.


Il y a même deux écoles : soit tout est renseigné dans la même monnaie
dans la base et converti à l'utilisation, soit la devise est précisée
avec le montant. Dans ce cas on préfère utiliser le code ISO 4217 de la
monnaie (EUR pour Euro, USD pour Dollar US) plutôt qu'un code de
caractère (?, $) qui va varier selon l'encodage retenu.

Codes ISO 4217 : [..],
[..]

cordialement
ajh-valmer (24/02/2020, 12h20)
> Le 09/02/2020 à 12:32, Jean-Michel OLTRA a écrit :
> >> on ne mets jamais l'unité dans une base de données...
> >> on inscrit simplement les montants en base, c'est à la présentation des
> >> données qu'on rajoute l'unité, ce qui permet de les manipuler comme on
> >> veut.

> > Tu peux la mettre dans une colonne à part, ou via un id dans une table
> > séparée. C'est quand même préférable de savoirdans quelle unité fut
> > enregistré ledit montant.


On Monday 24 February 2020 10:45:32 Erwann Le Bras wrote:
> Tout-a-fait.
> Il y a même deux écoles : soit tout est renseigné dans la même monnaie
> dans la base et converti à l'utilisation, soit la devise est précisée
> avec le montant. Dans ce cas on préfère utiliser le code ISO 4217 de la
> monnaie (EUR pour Euro, USD pour Dollar US) plutôt qu'un code de
> caractère (?, $) qui va varier selon l'encodage retenu.
> Codes ISO 4217 : [..],
> [..]


C'est un champ qui n'a pas à être manipulé,
de type caractères "varchar", contenant un nombre, suivis d'un espace
et de € (soit p. ex. "20 €").
C'est lors de l'update du champ que les caractères €
se transforment en ce caractère : ¤ et pourquoi ?
Ce n'est pas un champ de type "INT" (integer, entier).

La table comporte un autre champ "montant" qui ne contient
qu'un nombre INT (p. ex. "20"), pour les manipulations (calculs).

Bonne journée.
Erwann Le Bras (24/02/2020, 15h10)
Le 24/02/2020 à 11:18, ajh-valmer a écrit :
> On Monday 24 February 2020 10:45:32 Erwann Le Bras wrote:
> C'est un champ qui n'a pas à être manipulé,
> de type caractères "varchar", contenant un nombre, suivis d'un espace
> et de € (soit p. ex. "20 €").
> C'est lors de l'update du champ que les caractères €
> se transforment en ce caractère : ¤ et pourquoi ?
> Ce n'est pas un champ de type "INT" (integer, entier).
> La table comporte un autre champ "montant" qui ne contient
> qu'un nombre INT (p. ex. "20"), pour les manipulations (calculs).
> Bonne journée.


Je pense sérieusement pour un problème d'encodage.

Mais je pense qu'à la base il ya un problème de définition du shéma de
la base :
d'après ce que j'ai compris, il y a une table avec un montant au format
"varchar" et le même montant au format "int"
il n'est pas bon d'avoir deux fois la même info stockée en base, l'info
pouvant se désynchroniser entre les deux champs.
ajh-valmer (26/02/2020, 14h00)
On Monday 24 February 2020 14:03:08 Erwann Le Bras wrote:
> Je pense sérieusement pour un problème d'encodage.
> Mais je pense qu'à la base il y a un problème de définition du shéma de
> la base :
> d'après ce que j'ai compris, il y a une table avec un montant au format
> "varchar" et le même montant au format "int"
> il n'est pas bon d'avoir deux fois la même info stockée en base, l'info
> pouvant se désynchroniser entre les deux champs.


En fait non, car l'une est un champ d'infos de caractères varchar,
et le mot € ne devrait pas poser problème,
c'est juste un champ d'informations.
À moins de mettre à la place "euro"... est-ce le & et ; qui dérangent ?
Pourquoi lors de l'update € devient ¤ ?

L'autre est un champ INT (integer, entier), servant aux calculs,
il n'y a aucune relation entre eux lors des calculs.
Eric Degenetais (26/02/2020, 15h10)
bonjour,
Le mer. 26 févr. 2020 à 12:54, ajh-valmer <ajh.valmer> a écrit :

> On Monday 24 February 2020 14:03:08 Erwann Le Bras wrote:
> En fait non, car l'une est un champ d'infos de caractères varchar,
> et le mot &euro; ne devrait pas poser problème,
> c'est juste un champ d'informations. À moins de mettre à la place "euro"... est-ce le & et ; qui dérangent ?
> Pourquoi lors de l'update &euro; devient ¤ ?
> L'autre est un champ INT (integer, entier), servant aux calculs,
> il n'y a aucune relation entre eux lors des calculs.

Je pense qu'il y a malentendu : justement, il devrait être recalculé à la
volée à partir de l'autre s'il n'est "qu'un champ d'information" (??) :
pour que cette information ait de la valeur elle doit être prise de la
valeur qui sert a
aux calculs. Par ailleurs, en stockant l'unité à part et sous forme
symbolique, avec traduction à l'affichage, on évite un problème d'encodage
en base.

Cordialement

Eric Degenetais
Jean-Michel OLTRA (26/02/2020, 16h40)
Bonjour,

Le mercredi 26 février 2020, ajh-valmer a écrit...

> En fait non, car l'une est un champ d'infos de caractères varchar,
> et le mot &euro; ne devrait pas poser problème,
> c'est juste un champ d'informations.
> À moins de mettre à la place "euro"... est-ce le & et ; qui dérangent ?
> Pourquoi lors de l'update &euro; devient ¤ ?


Il me semble que le fil portait au départ sur l'affichage sous Phpmyadmin.
Non ?
As tu essayé de voir le code source de la page de phpmyadmin pour voir ce
u'il y a dedans ? D'afficher le symbole euro ? dans ta page phpmyadmin ?
Voire d'autres symboles html ?
ajh-valmer (26/02/2020, 18h10)
On Wednesday 26 February 2020 15:12:53 Jean-Michel OLTRA wrote:
> Il me semble que le fil portait au départ sur l'affichage sous Phpmyadmin.
> Non ? :


Oui.

> As tu essayé de voir le code source de la page de phpmyadmin pour voir ce
> u'il y a dedans ? D'afficher le symbole euro ? dans ta page phpmyadmin ?
> Voire d'autres symboles html ?


Le code source de la page phpmyadmin n'affiche pas cette information.

Il s'agit de l'ASCII étendu :
164 ¤ ¤
(un cercle avec 4 barres réparti à l'extérieur du cercle).

Les caractères &euro; deviennent ¤ après un update.
Par contre, si la page Web (pas phpmyadmin) affiche l'information du champ,
le symbole ? apparait très bien.

Si j'update avec &euro; , ? , ¤ pareil, phpmyadmin affiche ¤

Pour savoir :
apt-get update
apt-get purge phpmyadmin
apt-get install phpmyadmin
va t-il effacer mes bases de données Mysql ?
Mieux vaut être prudent :-)
Jean-Michel OLTRA (26/02/2020, 19h00)
Bonjour,

Le mercredi 26 février 2020, ajh-valmer a écrit...

> > As tu essayé de voir le code source de la page de phpmyadmin pour voir ce
> > u'il y a dedans ? D'afficher le symbole euro ? dans ta page phpmyadmin ?
> > Voire d'autres symboles html ?


> Le code source de la page phpmyadmin n'affiche pas cette information.


Non ? Avec le débugueur html du navigateur ?

> Les caractères &euro; deviennent ¤ après un update.
> Par contre, si la page Web (pas phpmyadmin) affiche l'information du champ,
> le symbole ? apparait très bien.


Il n'y a pas une option de configuration de phpmyadmin concernant l'encodage
des données et/ou des pages ouèbe ?
ajh-valmer (26/02/2020, 19h20)
On Wednesday 26 February 2020 17:37:35 Jean-Michel OLTRA wrote:
> > Le code source de la page phpmyadmin n'affiche pas cette information.


> Non ? Avec le débugueur html du navigateur ?
> Il n'y a pas une option de configuration de phpmyadmin concernant l'encodage
> des données et/ou des pages ouèbe ?


J'y suis arrivé,
voici ce qu'affiche le code source phpmyadmin du symbole euro dans le champ
concerné : &amp;euro;
(ajout de "amp;" entre "&" et "euro;").

Excuses, je réitère ma question :
apt-get update
apt-get purge phpmyadmin
apt-get install phpmyadmin
va t-il effacer mes bases de données Mysql ?
Mieux vaut être prudent :-)

Discussions similaires
Le symbole euro

symbole Euro ??

Symbole Euro

Symbole € EURO


Fuseau horaire GMT +2. Il est actuellement 22h05. | Privacy Policy