【问题标题】:Null answer from JSONArray in AndroidAndroid中JSONArray的空答案
【发布时间】:2012-04-05 19:21:33
【问题描述】:

我有这个 PHP 代码,以及一个带有“Question”、“answer1”、“answer2”、“Question_id”的数据库,当我从 PHP 进行 SQL 查询并对答案进行编码以发送 Android 应用程序时,只有“问题”字段为空,我读到它可能是代码,但我的数据库是用 utf-8 编码的。我也尝试使用 PHP 中的“utf8_encode”函数将结果转换为 utf-8,但它不起作用,所以我寻求帮助:P

这是代码(我删除了连接到数据库的代码和一些未使用的行......)

$sql=mysql_query("SELECT * FROM Questions");
$num_rows = mysql_num_rows($sql);
$max_value = (int)$num_rows;
$quest_id = rand ( 1, $max_value);
$sql=mysql_query("SELECT * FROM Questions WHERE id_quest = $quest_id");

$row = mysql_fetch_array($sql);
$output[]=$row;



    echo(json_encode($output));
mysql_close();

非常感谢:D

【问题讨论】:

    标签: php android sql json


    【解决方案1】:

    我认为你有点误会了。您的数据库可能以 UTF8 编码,但 php 与数据库之间的通信不是(默认为 latin1 / ISO-8859-1)。

    除非你正在做一个

    mysql_query('SET CHARACTER SET utf8');
    

    您没有与我们分享的地方,是您应该研究的解决方案。

    【讨论】:

      【解决方案2】:

      不要使用两个查询,而是尝试只使用一个。它可能无法解决问题,但会减少对 db 的调用次数:

      SELECT * FROM Questions ORDER BY RAND() LIMIT 1
      

      【讨论】:

      • 我试过了,但问题仍然存在,我对 JSON 没有任何经验,但如果所有字符串都编码为 utf-8,它应该可以工作......但没有哈哈哈
      • 你能从echo $output得到什么吗
      猜你喜欢
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2015-02-13
      相关资源
      最近更新 更多