IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Perte d'encodage UTF-8 dans une boucle (php-mysql) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut Perte d'encodage UTF-8 dans une boucle (php-mysql)
    Bonjour,

    j'ai une base avec interclassement utf8_general_ci (base, tables et champs)
    le même champ peut s'afficher bien.. ou pas : dans le même tableau
    voici des extraits de codes pour illustration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    ...
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    ...
    <?php>
    ...	
    mysql_select_db("jdsauxxisiecle");
    //mysql_query("SET NAMES UTF8"); 	 //si je retire le commentaire l'affichage est en : ISO ?
     
    ...
    	$result = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    	while($donnees = mysql_fetch_row($result))
    	{	
    		//allons chercher si il s'agit d'une extension (et on affiche alors de quel jeu)
    		if ($donnees[7]!=0) { 
    			//mysql_query("SET NAMES UTF8"); //que je l'ajoute ou l'enleve ne change rien ici
    			$affich = mysql_query('SELECT nom_fr FROM jeux WHERE idjeux = '.$donnees[7]);
    			while($row = mysql_fetch_row($affich)) {
    				$extension = $row[0]."&nbsp;- ".$donnees[0]; //affichage incorrect de $row[0] : en ISO ?
    			}
    		}		
    		else {
    			$extension = $donnees[0]; //affichage correct : UTF8 ; ($donnees[0] est le même champ que $row[0])
    		}
    	...
    exemple d'affichage :
    Crôa! - Splotch !
    Crôa!

    d'ou vient le problème ?
    merci par avance !

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    après ta connexion t'as bien fait un mysql_set_charset ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut
    non,
    mais comment expliquer dès lors que l'affichage est bon pour la première requête ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut
    je viens de tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$connection = mysql_connect($host,$login,$pwd);
    	mysql_set_charset('utf8',$connection);
    et du coup tous les champs avec accents s'affichent mal (ISO ?)...

  5. #5
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut
    Bonjour,

    Une tite question et les champs de ta table c'est quoi l'encodage ? Quand tu utilise phpmyadmin par exemple pour lire ta table tu as aussi des problème ?

    Cordialement,

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Par défaut
    comme indiqué dans la 1ère phrase de mon post initial :

    j'ai une base avec interclassement utf8_general_ci (base, tables et champs)
    donc via phpMyAdmin, le champ cité en exemple s'affiche : Crôa!

    via le site : il s'affiche correctement via la 1ère requête (Crôa!) mais pas dans celle imbriquée (Crôa!)...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les coordonnées de plusieurs DIV dans une boucle PHP
    Par renaud26 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/11/2009, 10h23
  2. Réponses: 4
    Dernier message: 12/06/2007, 09h17
  3. [MySQL] Requetes SQL dans une boucle PHP
    Par Siteac dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/11/2006, 14h35
  4. [Smarty] Affectation dans une boucle PHP
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/08/2006, 09h30
  5. [Performance] LEFT JOIN vs SELECT dans une boucle (PHP)
    Par frochard dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/10/2005, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo