OVH Community, votre nouvel espace communautaire.

Problème avec les accents venant de la base de données.


jeanrem
27/03/2012, 18h06
Laisse les raleurs raler, en ce qui me concerne tu m'as aider à trouvé la solution pour les trois discussion que j'ai posté sur ce forum et je t'en suis reconnaissant car un simple webmaster amateur comme je suis a besoin de personne compétente comme toi pour trouver des solutions

Gaston_Phone
27/03/2012, 17h52
Citation Envoyé par jeanrem
Ca marche parfaitement, encore une fois c'est toi qui résout mon problème, merci encore de m'apporter ton aide de part tes connaissances.
Merci.

Mais ce n'est pas l'avis de tout le monde et en particuliers de certains râleurs :
Extrait de http://forum.ovh.com/showthread.php?p=483485#post483485 # 3
Citation Envoyé par billy
Et puis arrête d'intervenir pour rien et pour constamment faire la pub d'OVH : t'as rien d'autre à faire ? Il n'y a plus assez de mondu sur usenet alors tu viens ici ?

jeanrem
27/03/2012, 17h32
Citation Envoyé par Gaston_Phone
Essaie en mettant en tête de la page HTML :
charset=iso-8859-1">
Ca marche parfaitement, encore une fois c'est toi qui résout mon problème, merci encore de m'apporter ton aide de part tes connaissances.

Daniel60
27/03/2012, 16h55
Ou simplement iso-8859-1"> dans la balise si tu es en html5.

Gaston_Phone
27/03/2012, 16h18
Essaie en mettant en tête de la page HTML :
charset=iso-8859-1">

Daniel60
27/03/2012, 16h07
Bien sûr que ta base est en latin1, c'est seulement que tu la visualise en mode UTF-8, change cela avant l'ouverture de phpMyAdmin.

jeanrem
27/03/2012, 15h54
C'est déja en latin1 ! ! ! Voila le début de ma table si ca peut t'aider...
CREATE TABLE IF NOT EXISTS `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titre` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`intro` text CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`article` text CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

Gaston_Phone
27/03/2012, 10h22
Citation Envoyé par jeanrem
Je vois à présent de quoi tu veux parler mais il y a un grand nombre de choix dans "latin" et je ne sais pas lequel choisir pour que ça marche... Pourrais tu me renseigner s'il te plait?
Merci de ton aide...
Citation Envoyé par Gaston_Phone
--> Dans la structure de la table mettre : DEFAULT CHARSET=latin1
Je ne crée pas mes tables avec PhpmyAdmin.
Je crée mes tables "à la main" en via un fichier SQL que je fabrique et qui contient :
CREATE TABLE IF NOT EXISTS `xxxxx` ( ...

jeanrem
27/03/2012, 09h49
Je vois à présent de quoi tu veux parler mais il y a un grand nombre de choix dans "latin" et je ne sais pas lequel choisir pour que ça marche... Pourrais tu me renseigner s'il te plait?
Merci de ton aide...

Gaston_Phone
26/03/2012, 20h32
Phpmyadmin > Structure d'une table > Modifier un Item > Interclassement Latin1_xxx

jeanrem
26/03/2012, 17h11
J'ai fouillé phpmyadmin de fond en comble mais impossible de mettre la main sur l'option dont tu me parle, pourrais tu me dire exactement où se situe cette option dans phpmyadmin?
Merci de ton aide.

Gaston_Phone
25/03/2012, 20h17
oui

jeanrem
25/03/2012, 19h43
Je dois pas être doué mais je ne trouve pas ce dont tu me parle, il faut bien que j'aille dans phpmyadmin?
Merci pour ton aide

Gaston_Phone
25/03/2012, 18h08
Ce n'est pas dans le "new PDO" que cela se passe, mais comme option dans la structure des tables.

jeanrem
25/03/2012, 17h22
Tout d'abord, merci de ton aide...
J'ai essayé ce que tu m'as dis, c'est à dire j'ai mis latin1_bin dans interclassement car c'est que qui ressemblait le mieux à ce que tu as marqué mais malheureusement cela n'a engendrer aucun changement.

Voila mon code de connection à la base de données si cela peut t'aider...
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=mysql51-58.perso;dbname=********', '**********', '**********', $pdo_options);

$req = $bdd->prepare('SELECT * FROM article WHERE id = ? ORDER BY id');
$req->execute(array($_GET['id']));

echo '
    ';
    while ($donnees = $req->fetch())

    { ?>

Gaston_Phone
25/03/2012, 16h38
--> Dans la structure de la table mettre : DEFAULT CHARSET=latin1

jeanrem
25/03/2012, 13h40
Bonjours, je viens vous solliciter car je commence tout juste à maitriser les bases de données et je rencontre un premier problème, mon site web affiche bien le texte présent dans les bases de données, seulement, les accents sont transformé en point d'interrogation...
Merci d'avance pour votre aide.