2 votes

Parsing json with php error "invalid argument supplied for foreach()" (erreur php)

J'ai un problème avec l'analyse d'un flux json avec php et je n'arrive pas à comprendre ce que je fais mal.

Flux JSON

[{"id":10428167,"url":"some_url","amount":1197,"price":0.37,"seller":{"id":4682621,"name":"Rap17ka7a"}},
{"id":10428466,"url":"some_url","amount":1450,"price":0.37,"seller":{"id":5031734,"name":"Meanor"}},
{"id":10429969,"url":"some_url","amount":109,"price":0.37,"seller":{"id":5862543,"name":"djeisanborn"}}]

Analyseur PHP

$request_url ="json_feed_url_is_here";
$requests = file_get_contents($request_url);
$response = json_decode($requests);
foreach ($response as $item) {
$seller = $item->seller->name;

$seller = str_replace("'", "'", $seller);
$seller = str_replace("’", "’;", $seller);

$sql = ("INSERT INTO table_name ( ~~~cell names~~~) 
        VALUES (~~~cell values~~~, '$item->amount', '$item->price', '$item->url')") or  die('<b>Data Insert Error:</b> ' . mysql_error());
if (!mysql_query($sql,$con1))
  {
  die('Error: ' . mysql_error());
  }
}

Ce que j'obtiens est cette erreur :

PHP Warning:  Invalid argument supplied for foreach() in path_to_php_file

6voto

bsdnoobz Points 8147

Définir le deuxième argument de json_decode a true pour convertir le JSON en tableau associatif au lieu d'un objet.

$response = json_decode($requests, true);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X