i have a json data retrieved from data base i.e
$result=array();
$query="SELECT * FROM fish";
$result1 = mysql_query($query, $conn);
while ($table = mysql_fetch_array($result1, MYSQL_ASSOC)){
$result[]=$table;
}
echo json_encode($result);
and this give me the result [{"fish_id":"1","name":"first fish update","info":"this is my first fish update","image":"http:\/\/www.localhost\/cafe\/pics\/logout (1).gif"}]
but from another page when i call this json data i.e
$input = file_get_contents("http://localhost/fish/fish-json.php"); $json=json_decode($input); echo $json->fish_id;
it give me the error
Notice: Trying to get property of non-object in /var/www/fish/json-to-php.php on line 13 Call Stack: 0.0005 318764 1. {main}() /var/www/fish/json-to-php.php:0
asked Dec 21, 2010 at 13:04
5 Answers 5
Is an array of object, so
echo $json[0]->fish_id;
To loop
if (!is_array($json)) die('...');
foreach ($json as $key=>$fish)
{
echo $fish->fish_id;
}
answered Dec 21, 2010 at 13:10
-
hay thanks,it works but if there are more than one records then how could i iterate to thishunter– hunter2010年12月21日 13:18:46 +00:00Commented Dec 21, 2010 at 13:18
Try
$input = file_get_contents("http://localhost/fish/fish-json.php");
$json=json_decode($input);
echo $json['fish_id'];
answered Dec 21, 2010 at 13:07
try echo $json['fish_id'];
i might suspect it convert it to an array
answered Dec 21, 2010 at 13:08
try this first:
echo $json;
to check if you got valid json. Eventually, the php in fish-json.php was not executed.
answered Dec 21, 2010 at 13:11
By default json_decode returns an stdClass object. You have to give a second parameter for this function TRUE.
$json=json_decode($input, TRUE);
echo $json[0]['fish_id'];
answered Dec 21, 2010 at 13:13
lang-php
$input
contain any result when you echo it?print_r()
orvar_dump()
is your friend :))