json_encode est de retour NULL?

Pour une raison quelconque, le point "description" renvoie NULL avec le code suivant:

<?php
include('db.php');

$result = mysql_query('SELECT * FROM `staff` ORDER BY `id` DESC LIMIT 2') or die(mysql_error());
$rows = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
}

echo json_encode($rows);
?>

Voici le schéma de ma base de données:

CREATE TABLE `staff` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` longtext COLLATE utf8_unicode_ci,
  `description` longtext COLLATE utf8_unicode_ci,
  `icon` longtext COLLATE utf8_unicode_ci,
  `date` longtext COLLATE utf8_unicode_ci,
  `company` longtext COLLATE utf8_unicode_ci,
  `companyurl` longtext COLLATE utf8_unicode_ci,
  `appurl` longtext COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Ici est ce qui est fait l'écho sur la page:

[{"id":"4","name":"Noter 2","description":null,"icon":"http:\/\/images.apple.com\/webapps\/productivity\/images\/noter2_20091223182720-thumb.jpg","date":"1262032317","company":"dBelement, LLC","companyurl":"http:\/\/dbelement.com\/","appurl":"http:\/\/noter2.dbelement.com"},{"id":"3","name":"Noter 2","description":null,"icon":"http:\/\/images.apple.com\/webapps\/productivity\/images\/noter2_20091223182720-thumb.jpg","date":"1262032317","company":"dBelement, LLC","companyurl":"http:\/\/dbelement.com\/","appurl":"http:\/\/noter2.dbelement.com"}]

Des idées?

  • Nous allons mettre le tableau de clés entre guillemets, tout d'abord.
  • Pourriez-vous fournir des informations sur le schéma de votre "personnel" de la table. Est-il une colonne appelée description?
  • l'ensemble de ces champs se fera l'écho si je viens simplement faire un echo de $r['description'] à l'extérieur de la() déclaration?
  • Ou peut-être quelques exemple de contenu de $r['description'] pourrait l'aider. Ce type de données est-il?
  • pourriez-vous faire une capture d'écran de la base de données shema? 😉
  • ajoutés à la question 🙂
  • avez-vous essayé un $r = mysql_fetch_array($result); print_r($r);
  • mais je ne vois pas de capture d'écran de la base de données shema, il y a juste le texte 🙂 sans blague, à côté avez-vous essayé le au-dessus de $r = mysql_fetch_array($result); print_r($r); et d'afficher le résultat en tant que 3 mo printscreen,
  • Ajouté un peu plus de code ^^ voici la capture d'écran: tarnfeldweb.com/stackoverflow.png
  • Quelle version de PHP est-ce?
  • c'est la version php5
  • Utiliser les JSON_PARTIAL_OUTPUT_ON_ERROR option pour voir le problème (par exemple. le champ avec l'UTF8 sera nulle).
  • J'ai eu le même problème. Il s'avère que les données enregistrées dans la base de données a été mal codé. Caractère français comme é,ë,' etc ont été traduits dans d'étranges personnages Ã, Ã, ¢, â' €. Pour résoudre le problème, assurez-vous de nettoyer ces étranges personnages. Il a travaillé pour moi!

InformationsquelleAutor tarnfeld | 2009-12-28