Page 1 sur 1
Mysql, phpmyadmin ...
Posté : 29 nov. 2007, 11:17
par guigui69
Bonjour à tous,
J'ai installé sur mon serveur ubuntu, mysql (MySQL: 5.0.38), apache etc...
Tout fonctionne bien mise à part d'un petit souci, j'ai insérer des données dans ma base le petit soucis c'est que tout les les mots (par exemple: farine fourré) et bien tout les "é" sont remplacé par des point d'interrogation (?)
Comment faire pour éviter ce problème?
Mon ma parler de l'inter classement.
Quel inter classement je doit mettre?
Deuxième petite question:
Je suis obliger de mettre un poit (.) a la place d'une virgule pour les nombre que je rentre, comment faire pour qu'il interprète correctement la virgule
(Car actuellement 2,400 se transforme en 2.000)
Merci d'avance
guigui69
Posté : 29 nov. 2007, 12:13
par Cyrano
Salut,
l'interclassement devrait être à "latin1" qui correspond à "iso-8859-1" : là, je dirais que tu as envoyé des caractères encodées en iso-8859-1 dans une table qui a un interclassement en utf-8. Donc deux solutions possibles : soit tu modifie l'interclassement de toutes tes tables, soit tu encodes les données en utf-8 avant insertion et grosso modo tu traites tout en utf-8.
Quand aux nombres flottants, il faut les enregistrer en utilisant le point décimal et non la virgule qui sera interprétée comme un séparateur d'arguments. donc il faut enregistrer "2.400" et non "2,400". Ça veut dire effectuer un traitement avant le construction de la requête et l'inverse lors de l'affichage des données récupérées dans la base.
Posté : 29 nov. 2007, 12:28
par guigui69
Merci pour ta réponse, quel methode me conseille tu au niveau de l'interclassement (le plus simple a mettre en place).
Aurait un petit exemple d'un bout de script pour transformer les virgule en point et vis vers ca (en php)
Merci d'avance
guigui69
Posté : 29 nov. 2007, 12:46
par Cyrano
Essaye ça :
<?php
$nombre = "2,400";
$num_float = str_replace(",", ".", $nombre);
echo("<p>Nombre au départ : ". $nombre ."</p>");
echo("<p>Nombre après traitement : ". $num_float ."</p>");
?>

Posté : 04 déc. 2007, 16:02
par guigui69
Merci pour ta réponse,
au niveau de phpmyadmin, le champ ou les é sont remplacés par ? l'interclassement est le suivant :
latin1_swedish_ci
Comment le modifié
Merci pour ton code pour remplacer les "," par des points, je teste ca

Posté : 04 déc. 2007, 16:10
par Cyrano
Vérifie si le problème est au niveau de l'affichage ou bien des données elles-même qui seraient enregistrées incorrectement. Tu peux tester ça en modifiant l'encodage utilisé par ton navigateur en cliquant sur "Affichage>Encodage des caractères" et en sélectionnant iso-8859-1 par exemple : si ça corrige bien les valeurs, c'est que l'encodage par défaut de ta page est à modifier avec une balise <meta> du genre :
Code : Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
Posté : 04 déc. 2007, 18:04
par guigui69
Ok mais ça doit être dans ma base car dans les données rentrée à la place du 'é' il y a un ? sur tout les mot.
Posté : 04 janv. 2008, 10:54
par guigui69
Bonjour je revient sur ce petit soucis car ma base de donnée commence a bien avancée.
Comment faire pour ma base de donnée soit bien encodé. Que lorsque j'ai des mots avec des accents, les accents reste et ne soit pas transformé en "?".
Cette modification peut-elle est fait depuis phpmyadmin?
Merci pour votre aide
guigui69