2016-12-14 2 views
0
$cn = curl_init(); 
$url = 'https://URL'; 

curl_setopt($cn, CURLOPT_URL, $url); 
curl_setopt($cn, CURLOPT_RETURNTRANSFER, TRUE); 

$output = curl_exec($cn); 

$aOutput = json_decode($output, TRUE); 
//var_dump($aOutput); 
$curl_error = curl_error($cn); 
print_r($curl_error); 

$conn = new mysqli($servername, $username, $password, $dbname); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
foreach($aOutput as $key => $data) { 
    var_dump($key['average_price']); 
// var_dump($data[$key]["Average_Price"]); 
// $sql = "INSERT INTO Market('type_id', 'average_price', 'adjusted_price') 
//  VALUES ($data);"; 
    } 
    array(10763) { 
    [0]=> 
    array(3) { 
    ["average_price"]=> 
    float(381907.23) 
    ["adjusted_price"]=> 
    float(383184.18) 
    ["type_id"]=> 
    int(32772) 
    } 
    [1]=> 
    array(3) { 
    ["average_price"]=> 
    float(54090.07) 
    ["adjusted_price"]=> 
    float(57340.16) 
    ["type_id"]=> 
    int(32774) 
    } 

Ich versuche, dieses gesamte mehrdimensionale Array zu meiner Datenbank hinzuzufügen. Die Hauptsache, mit der ich Probleme habe, ist die foreach-Schleife.Hinzufügen von RestAPI-Antwort zu MySQL-Datenbank

Ich habe versucht, $ array [$ key] [$ Spalte], und viele andere Möglichkeiten, aber ich nur NULL erhalten, wenn die Variable Dumping.

ich versucht habe, $ key [ 'average_price'] usw. gibt immer noch null.

+1

In Ihrem foreach, '$ key ['average_price']' und so weiter sollte gut funktionieren – WillardSolutions

+0

Welche Struktur Ihrer '$ aOutput'? Ich schlage vor, dass Sie Daten von $ data ['average_price'] 'anstelle von' $ key' brauchen, was skalar ist, denke ich. Ihre Schleife repräsentiert jedes Element von '$ aOutput' als '$ key' und' $ data', wobei '$ key' ein Array-Index ist (in diesem speziellen Fall) und' $ data' ist ein Hash selbst. – Wizard

Antwort

0

Sie bekommen $ Schlüssel und Daten $ durcheinander.

am einfachsten, wenn Sie es mit Anmerkungen versehen out:

Wenn Ihr $ aOutput Array ist

array(10763) { 
    [0]=> 
     array(3) { 
      ["average_price"]=>float(381907.23) 
      ["adjusted_price"]=>float(383184.18) 
      ["type_id"]=>int(32772) 
     } 
    [1]=> 
     array(3) { 
      ["average_price"]=>float(54090.07) 
      ["adjusted_price"]=>float(57340.16) 
      ["type_id"]=>int(32774) 
     } 
    .... 

dann

foreach($aOutput as $key => $data) { 
    // $key = 0 
    // $data = array(3) { 
      ["average_price"]=>float(381907.23) 
      ["adjusted_price"]=>float(383184.18) 
      ["type_id"]=>int(32772) 
     } 
    // So what you want is $data['average_price'] 

Sie können dies vereinfachen, indem sie nicht einmal hte Schlüssel, tun nur

foreach($aOutput as $data) { 
    // $data = array(3) { 
      ["average_price"]=>float(381907.23) 
      ["adjusted_price"]=>float(383184.18) 
      ["type_id"]=>int(32772) 
     } 
    // So what you want is $data['average_price']