J'ai posté récemment un message sur le forum intitulé "Réponse multiple avec JSON"
et j'ai obtenu une réponse rapide. Parfait.
La solution consistait à parcourir toutes les lignes de la BDD puis encoder le tout
soit par exemple :
while ($row = mysql_fetch_assoc($query)) {
$ligne[]=$row;
}
$json = json_encode($ligne);
Mais rapidement, je suis tombé sur un os. La chaine JSON renvoit null sur certaines données.Je suis tombé alors sur ce message http://www.commentcamarche.net/forum/af ... -accentues
qui résume bien la problématique. Problème si caractères accentués. J'ai tenté alors de convertir une colonne de ma table Mysql en utf8 mais sans résultat.
La fonction utf8_encode() prend en paramètre une chaîne or dans le code ci-haut, toutes les variables sont des tableaux.
J'ai réussi par la ritournelle :
while ($row = mysql_fetch_assoc($query)) {
// $ligne[]=$row;
$ligne['id']=$row['id'];
$ligne['NOM']=$row['NOM'];
$ligne['NOTE']=utf8_encode($row['NOTE']); // Lu enfin par Json}
$json = json_encode($ligne);
Vous me direz alors, mais c'est quoi ton problème ?Ben, c'est que je dois lister pas mal de nom de colonnes pour contourner ce problème.
Avez vous une solution plus astucieuse ?