Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

echo json_encode($row) returns duplicate values

Tags:

json

php

here's my php code

$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);

and it returns this:

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

this is how jsonviewer.stack.hu shows it jsonviewer

fyi, there's only one row of data inside the table. but it seems json_encode($row) displays the value twice, but firstly using number (0 - 4) as the label, then it uses the column name (id, year, necessities, savings, entertainment) as the label.

how can I make it to display the value only once, using the column name?

like image 925
imin Avatar asked Jun 08 '26 07:06

imin


2 Answers

Change mysql_fetch_array to mysql_fetch_assoc.

mysql_fetch_array returns a result row in both numeric and associative array.

mysql_fetch_assoc returns a result row as associative array.

like image 167
Samir Selia Avatar answered Jun 10 '26 04:06

Samir Selia


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

You can give this functional additional arguments including MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH. In your case you want MYSQL_ASSOC.

However, you should be using mysqli and not mysql. the mysql functions are no longer maintained.

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

like image 40
Bryan Abrams Avatar answered Jun 10 '26 02:06

Bryan Abrams



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!