Logan Vanderbeck
Logan Vanderbeck

Reputation: 3

Accessing JSON Array with PHP

Can't seem to figure out how to access a JSON object within an array in my for loop. Any help would be great. Json:

[
 {
  subject: "******",
  subscribers_primary_advisor_id: "******",
  comments_first: "******",
  created_at: "*******",
  discussion_category: "*****",
  last_comment_by: "******",
  last_comment_by_id: "*******",
  updated_at: "*******"
 },

Here is my php:

for($j = 0; $j < $size; $j++){
$sql = "INSERT INTO advisor_discussion(`comment_subject`,`advisor_id`,`content`,`date_created`,`discussion_category`,`
last_comment_id`,`updated_at`) VALUES (?,?,?,?,?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sssssss', $comment_subject, $advisor_id, $content, $date_created, $discussion_category, $last_comment_id, $updated_at);

$comment_subject = $discussion['subject'][$j];
$advisor_id = $discussion['subscribers_primary_advisor_id'][$j];
$content = $discussion['comments_first'][$j];
$date_created = $discussion['created_at'][$j];
$discussion_category = $discussion['$discussion_category'][$j];
$last_comment_id = $discussion['last_comment_by_id'][$j];
$updated_at = $discussion['updated_at'][$j];

if ($stmt->execute() !== TRUE) {
  var_dump($stmt);
  die("Error inserting discussion");
}

}

Upvotes: 0

Views: 666

Answers (1)

Radix Salvilines
Radix Salvilines

Reputation: 416

Assuming that you have parsed the JSON with json_decode function and you have multiple JS objects contained in your JSON string then perhaps instead of $discussion['subject'][$j] do $discussion[$j]['subject'] .

In other words the index first and then the JS object property.

Also note that json_decode can create PHP objects too. See here about the second parameter: http://php.net/manual/en/function.json-decode.php

If you do not specify that you want an associative array then you might want to try doing $discussion[$j]->subject instead as you will get an array of objects.

Upvotes: 2

Related Questions