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

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    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 éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    après ta connexion t'as bien fait un mysql_set_charset ?

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

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

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    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 confirmé 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
    Points : 632
    Points
    632
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    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!)...

  7. #7
    Membre confirmé 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
    Points : 632
    Points
    632
    Par défaut
    Et la requête ici : $result = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    Proviens aussi de la table jeux ?

    Et ce n'est pas parce que l'on définit une BDD en UTF-8 et en utf8-general-ci que phpMyAdmin ou même les outils tel que MySQL Query Browser se tiendrons à ce réglage.

    Cordialement,

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Ne voyez aucune agressivité dans ma réponse précédente.

    Pour vous répondre : oui la 1ère requête concerne également la table jeux, (avec 11 autres tables) et c'est bien ce qui me laisse perplexe :
    pourquoi le résultat de la première requête s'affiche correctement
    et pas celui de la deuxième ? (il s'agit du même champ affiché)

  9. #9
    Membre confirmé 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
    Points : 632
    Points
    632
    Par défaut
    En aucun cas j'ai pris votre message de manière agressive

    Je veux juste tout comme vous essayer de comprendre pourquoi d'un coup PHP affiche la donné de manière incohérente...

    On peut avoir la totalité du code de la page si possible ?

    Cordialement,

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    bien sûr :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    <html lang="fr">
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    	<?php require('ajaxstarrater/_drawrating.php'); //fonction d'affichage du score sous forme d'étoiles 	?>
     
    		<!link rel="shortcut icon" type="image/ico" href="http://www.sprymedia.co.uk/media/images/favicon.ico" />
    		<!link rel="shortcut icon" type="image/ico" href="Games2.png" />
    		<link type="text/css" href="css/dark-hive/jquery-ui-1.8.6.custom.css" rel="stylesheet" />
     
    		<title>Jeux de Société ABSA</title> 
    		<style type="text/css" title="currentStyle">
    			@import "DataTables/media/css/demo_page.css";
    			@import "DataTables/media/css/demo_table.css";
    		</style>
     
    		<script type="text/javascript" language="javascript" src="DataTables/media/js/jquery.js"></script>
    		<script type="text/javascript" language="javascript" src="DataTables/media/js/jquery.dataTables.js"></script>
    		<script type="text/javascript" charset="UTF-8">	
    			$(document).ready(function() {				 
    				/*
    				 * Insert a 'details' column to the table
    				 */
    				var nCloneTh = document.createElement( 'th' );
    				var nCloneTd = document.createElement( 'td' );
    				nCloneTd.innerHTML = '<img src="DataTables/examples/examples_support/details_open.png" id="clicoui">';
    				nCloneTd.className = "center";
     
    				$('#example thead tr').each( function () {
    					this.insertBefore( nCloneTh, this.childNodes[0] );
    				} );
     
    				$('#example tbody tr ').each( function () {
    					this.insertBefore(  nCloneTd.cloneNode( true ), this.childNodes[0] );
    				} );
     
    				 /* Initialse DataTables, with no sorting on the 'details' column */				 
    				var oTable = $('#example').dataTable( {
    					"bJQueryUI": true,
    					"aoColumnDefs": [
    						{ "bSortable": false, "aTargets": [ 0 ] }
    					],
    					"aaSorting": [[1, 'asc']],
    					"aoColumns": [ 
    					    /* +/-  */   null,
    						/*1 jeux */   null,
    						/*2 type */   null,
    						/*3 theme*/   null,	
    						/*4 mns  */   null,
    						/*5 min  */   null,
    						/*6 max  */   null,						
    						/*7 date */   { "bVisible":    false },
    						/*8 pays */   { "bSearchable": false,
    										 "bVisible":    false },
    						/*9 note */   null,
    						/*10 prix */   null,
    						/*11 diff */   { "bSearchable": false,
    										 "bVisible":    false },
    						/*12 chan */   { "bSearchable": false,
    										 "bVisible":    false },
    						/*13 stra */   { "bSearchable": false,
    										 "bVisible":    false },
    						/*14 dipl */   { "bSearchable": false,
    										 "bVisible":    false },
    						/*15 stat */   { "bVisible":    false },
    						/*16 boite*/   { "bVisible":    false },
    						/*17 site */   { "bVisible":    false },
    						/*18 lieu */   { "bVisible":    false },
    						/*19 epoq */   { "bVisible":    false },
    						/*20 mat. */   { "bVisible":    false },
    						/*21 role */   { "bVisible":    false },
    						/*22 versu*/   { "bVisible":    false },
    						/*23 TrTr */   { "bVisible":    false },
    						/*24 Video*/   { "bVisible":    false },
    						/*25 Meca */   { "bVisible":    false },
    						/*25 Desc */   { "bVisible":    false }
    					]
    				});
     
    				/* Add event listener for opening and closing details
    				 * Note that the indicator for showing which row is open is not controlled by DataTables,
    				 * rather it is done here
    				 var path=document[b].src;
     
    				 function findimg()
    				{
    				 var image;
    				 image=document.getElementById('home');
    				 if (image) 
    				  {
    				   image.style.border='3px dashed #ccc';
    				  }
    				}		 
    				 */
    				$('#example tbody td #clicoui').live('click', function () {
    					var nTr = this.parentNode.parentNode;
    					if ( this.src.match('details_close') )
    					{
    						/* This row is already open - close it */
    						this.src = "DataTables/examples/examples_support/details_open.png";
    						oTable.fnClose( nTr );
    					}
    					else
    					{
    						/* Open this row */
    						this.src = "DataTables/examples/examples_support/details_close.png";
    						oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );
    					}
    				} );			
    			} );
     
    			/* Formating function for row details */
    			function fnFormatDetails ( oTable, nTr )
    			{
    				var aData = oTable.fnGetData( nTr );
    				var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;" width="100%">';
    				sOut += '<tr><td colspan="1" rowspan="4">'+aData[16]+'</td><td>'+aData[8]+'	    </td><td valign="center"> paru en '+aData[7]+'<BR>			 		</td><td>Possédé par  : '+aData[15]+'				  	        </td><td align="right"><B>lieu :</B> 		 </td><td align="left">'+aData[18]+'</td><td align="right"><B>difficulté :</B> '+aData[11]+'</td></tr>';
    				sOut += '<tr>											   <td>					</td><td><a href='+aData[17]+' target=_blank>site Editeur</a>		</td><td><a href='+aData[23]+' target=_blank>site Tric Trac</a></td><td align="right"><B>époque :</B> 	     </td><td align="left">'+aData[19]+'</td><td align="right"><B>chance    :</B> '+aData[12]+'	</td></tr>';
    				sOut += '<tr>											   <td colspan="2" rowspan="1"><B>matériel (plutôt) :</B> '+aData[20]+'		  	 		</td><td style="vertical-align: middle;">vidéo(s) sur le jeu :	'+aData[24]+'       		    </td><td align="right"><B>rôle (plutôt) :</B></td><td align="left">'+aData[21]+'</td><td align="right"><B>stratégie  :</B> '+aData[13]+'</td></tr>';
    				sOut += '<tr>											   <td colspan="3" rowspan="1"><B>mécanisme(s) : </B>'+aData[25]+'</td><td align="right"><B>versus :</B> 	     </td><td align="left">'+aData[22]+'</td><td align="right"><B>diplomatie :</B> '+aData[14]+'</td></tr>';
    				sOut += '</table>';
     
    				return sOut;
    			}			
    		</script>
     
    		<!javascript et feuille de style pour l'affichage du score sous forme d'étoiles> 
    	<script type="text/javascript" language="javascript" src="ajaxstarrater/js/behavior.js"></script>
    	<script type="text/javascript" language="javascript" src="ajaxstarrater/js/rating.js"></script>
    	<link rel="stylesheet" type="text/css" href="ajaxstarrater/css/rating.css" />
    	<?php include('param.php'); ?>
    	</head>
     
    	<body id="dt_example">
    		<div id="container">
    		<div id="demo">
    		<table style="text-align: left; width: 100%;" cellpadding="2" cellspacing="2">
    			<tbody>
    				<tr>
    					<td><img alt='jeux de société 21e siecle' src="images/XXIweb.jpg"  height='300'></a></td>
    					<td style="text-align: center; vertical-align: top;"><B>LUDOTHEQUE de la section 'Jeux de Société au 21ème siècle' de <a href="http://www.buttesainteanne.org/" target=_blank>l'ABSA.</a></B>
    					<BR><BR><a href="mailto:jdsauxxisiecle@free.fr">Pour nous laisser un message, cliquez ici.</a>
    					<BR><BR><BR><BR><B>- Agenda -</B><BR> Tous les lundi soirs de 20h30/21h à minuit<BR><a href="http://maps.google.fr/maps?f=q&source=s_q&hl=fr&geocode=&q=10+Place+des+Garennes,+Nantes&sll=46.75984,1.738281&sspn=5.931584,19.379883&ie=UTF8&hq=&hnear=10+Place+des+Garennes,+44100+Nantes,+Loire-Atlantique,+Pays+de+la+Loire&ll=47.197645,-1.577997&spn=0.020383,0.038581&t=h&z=15&iwloc=r1&layer=c&cbll=47.2021,-1.578379&panoid=0NYKdtaPPOXvP0w9bdCfOw&cbp=12,76.36,,0,1.97" target=_blank>au DIX, 10 place des Garennes à Nantes</a><BR>Traverser la cour par l'escalier de droite, Salle 'CLub', au 1er étage.
    					<BR><BR><BR><BR><BR><BR>NB : les entêtes de colonnes et <img alt='plus' src="DataTables/examples/examples_support/details_open.png"></a> sont intéractifs.
    					</td>
    				</tr>
    			</tbody>
    		</table>
    		<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
    	    <thead id="clic">
            <tr>
                <th>Jeux</th>
                <th>Pour</th>
                <th>Type</th>
    			<th>Mns</th>
    			<th>Min</th>
    			<th>Max</th>			
                <th>Date</th>
                <th>Pays</th>
    			<th>Note</th>
    			<th>Prix</th>
    			<th>Diff</th>
    			<th>Chan</th>
    			<th>Stra</th>
    			<th>Dipl</th>
    			<th>Statut</th>
    			<th>Boite</th>
    			<th>Site</th>
    			<th>Lieu</th>
    			<th>Epoq</th>
    			<th>Mat.</th>			
                <th>Role</th>
                <th>Vers</th>
    			<th>TrTr</th>
    			<th>Video</th>
    			<th>Meca</th>
    			<th>Des</th>
            </tr>
        </thead>
    	<tbody>
     
    <?php
     
    	$sql ='
    SELECT j.nom_fr nomjeu, YEAR(j.date_sortie) date, i.lien imagedrapeau, im.lien boite, i.descriptif nompays, j.idjeux idj, a.statut statut, j.extension ext, j.difficulte diff, j.chance chance, j.strategie strat, j.diplomatie diplom, t.nom theme, f.nom famille, j.duree mns, j.nb_mini_joueur min, j.nb_maxi_joueur max, j.siteorigine sitediteur, l.nom lieu, e.nom epoque, m.nom materiel, r.nom role, v.nom versus, c.lien tt, j.description description FROM jeux j 
    	INNER JOIN 	origine o
    		ON j.FKidorigine = o.idorigine
    	INNER JOIN image i
    		ON o.FKidimage = i.idimage
    	INNER JOIN image im
    		ON j.FKidimage = im.idimage		
    	INNER JOIN 	absa a
    		ON j.FKidabsa = a.idabsa
    	INNER JOIN 	theme t
    		ON j.FKidtheme = t.idtheme
    	INNER JOIN 	famille f
    		ON j.FKidfamille = f.idfamille
    	INNER JOIN 	lieu l
    		ON l.idlieu = j.FKidlieu
    	INNER JOIN 	epoque e
    		ON e.idepoque = j.FKidepoque
    	INNER JOIN 	materiel m
    		ON m.idobjet = j.FKidobjet
    	INNER JOIN 	role r
    		ON r.iddominante = j.FKidrole
    	INNER JOIN 	versus v
    		ON v.idversus = j.FKidversus
    	INNER JOIN 	commentaire c
    		ON c.FKidjeux = j.idjeux
    	 ORDER BY nomjeu DESC'; 
    	 $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
    		}
     
    		//cherchons ensuite si le jeu a eu quelque(s) recompense(s)
    		$prix="";
    		$sqlprix = "
    			SELECT i.lien lien,r.nom prix,r.categorie categorie,r.annee annee FROM recompense r 
    			INNER JOIN image i
    			ON r.FKidimage = i.idimage
    			WHERE r.FKidjeux = ".$donnees[5];							
    		$req = mysql_query ($sqlprix);
    		$nbprix=0;
    		while($row = mysql_fetch_row($req)) {
    			$nbprix=$nbprix+1 ;
    			$title = addslashes ($row[1])." ".addslashes ($row[2]). " ".$row[3];
    			$prix .="<img alt='$nbprix' title='$title' src=".$row[0]."  height='29' value='$nbprix'></a>";		
    		}
     
    		//cherchons ensuite si le jeu a quelque(s) video(s)
    		$video="";
    		$sqlvideo = "
    			SELECT v.lien lienvideo FROM video v 
    			INNER JOIN jeux j
    			ON v.FKidjeux = j.idjeux
    			WHERE v.FKidjeux = ".$donnees[5];		
    		$req = mysql_query ($sqlvideo);
    		while($row = mysql_fetch_row($req)) {
    			$video .="<a href=".$row[0]." target=_blank><img src='images/MoviesAlt.png' style='border: 0px solid ; width: 15px; height: 15px;'> </a>";
    		}
     
    	//cherchons ensuite le(s) mécanisme(s) du jeu
    		$meca="";
    		$sqlmeca = "
    			SELECT m.nom meca FROM mecanisme m
    			INNER JOIN jeux_meca jm
    			ON m.idmecanisme = jm.Fkidmecanisme
    			WHERE jm.FKidjeux = ".$donnees[5];
    			mysql_query("SET NAMES 'utf8'");
    		$req = mysql_query ($sqlmeca);
    		while($row = mysql_fetch_row($req)) {
    			$meca .=$row[0].", ";
     
    		}
     
    	//récupérons l'image du jeu au passage et sa description
    	//$jdesc = addslashes ($donnees[24]);
    	$jdesc = $donnees[24];
    	$imjeu ="<img alt=' ' src=".$donnees[3]." title='$jdesc' height='100'></a>";		
     
    	echo 
    		"<tr>
                <td>$extension</td>
    			<td>$donnees[13]</td>
    			<td>$donnees[12]</td>
    			<td>$donnees[14]</td>
    			<td>$donnees[15]</td>
    			<td>$donnees[16]</td>			
                <td>$donnees[1]</td>
                <td><img alt=".$donnees[4]." src=".$donnees[2]." width='30' height='25'></a></td>
    			<td>".rating_bar($donnees[5],'5','static')."</td>
    			<td>$prix</td>
    			<td>$donnees[8]</td>
    			<td>$donnees[9]</td>
    			<td>$donnees[10]</td>
    			<td>$donnees[11]</td>
    			<td>$donnees[6]</td>
    			<td>$imjeu</td>
    			<td>$donnees[17]</td>
    			<td>$donnees[18]</td>
    			<td>$donnees[19]</td>
    			<td>$donnees[20]</td>			
                <td>$donnees[21]</td>
                <td>$donnees[22]</td>
    			<td>$donnees[23]</td>
    			<td>$video</td>
    			<td>$meca</td>
    			<td>$donnees[24]</td>
            </tr>";
    	}
    	//$req->closeCursor();
    ?>		
        </tbody>
    </table>
    			</div>
    			<div class="spacer"></div>			
    			<div id="footer" style="text-align:center;"></div>
    		</div>
    	</body>
    </html>

  11. #11
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut Les mystères de l'UTF-8
    Tout d'abord pourquoi la première requête s'affiche bien et celle imbriqué ne l'est pas?
    Sa peu venir au niveau de l'insert dans base mysql requête des données "textes iso" vers table utf-8, de l'utilisation ou pas du htlmentities ... de la sur utilisation de utf8_encode problème de sur encodage...

    La bonne méthode a prendre mettre tout en utf8 surtout pour les sites multiglottes...

    MYSQL en utf8
    php.ini charset en utf8
    dans le header() pour forcer la page en utf8
    soit dans les <meta> forcer le charset en utf8
    et aussi pour les utilisateurs de javascript dans la balise <script> mettre aussi l'attribut charset en utf-8

    En gros si tu respect ce minima jamais tu rencontrera de problème d'encodage de caractères au niveau web.

    Au niveau OS ne pas oublié d'installer les langues ex: japonnais chinois car même en mettant tout en utf-8 si vous n'avez pas les polices dans votre browser ou une alternative dans votre système d'exploitation au cas ou le navigateur ne dispose pas de la police en question.

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    en fait, les champs de la base sont bien en UTF8,
    ainsi que l'interclassement de la base
    mais pas celui des tables,
    + certains champs sont toujours en latin 1,
    + je n'avais plus besoin de faire : "mysql_query('SET NAMES utf8');" qui étaient redondants dans le code...
    affaire résolue

  13. #13
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    d'ailleurs c'est mysql_set_charset

+ 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