echo json_encode($ row)返回重复值

时间:2015-07-27 08:45:57

标签: php json

这是我的PHP代码

$result = mysql_query("select * from backup where owner='$email'") or die (mysql_error());
$dataCount = mysql_num_rows($result);
$row = mysql_fetch_array($result);
echo json_encode($row);

然后返回:

{"0":"1","id":"1","1":"2015","year":"2015","2":"55","necessities":"55","3":"10","savings":"10","4":"10","entertainment":"10"}

这是jsonviewer.stack.hu显示的方式 jsonviewer

fyi,表格中只有一行数据。但似乎json_encode($ row)显示两次值,但首先使用数字(0 - 4)作为标签,然后它使用列名(id,year,necessities,savings,entertainment)作为标签。

如何使用列名?

使其仅显示一次值

3 个答案:

答案 0 :(得分:3)

http://php.net/manual/en/function.mysql-fetch-array.php

您可以提供此功能性附加参数,包括MYSQL_ASSOCMYSQL_NUMMYSQL_BOTH。在您的情况下,您需要MYSQL_ASSOC

但是,您应该使用mysqli而不是mysql。不再维护mysql个函数。

http://php.net/manual/en/mysqli-result.fetch-array.php

答案 1 :(得分:1)

mysql_fetch_array更改为mysql_fetch_assoc

mysql_fetch_array返回数字和关联数组中的结果行。

mysql_fetch_assoc将结果行作为关联数组返回。

答案 2 :(得分:1)

对于新版本的php(> 5.5),请使用 mysqli_fetch_assoc 而不是mysql_fetch_assocmysql_fetch_assoc函数已被弃用,不再被维护:使用该函数会导致错误。