Reputation: 3
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
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