At present my JSON looks like this:
[{
"user_review_ids": {
"category": "cat1",
"name": "name1",
"phone": "phone1",
"comment": "com1",
"reviewid": 32
}
}, {
"user_review_ids": {
"category": "cat2",
"name": "name2",
"phone": "phone2",
"comment": "com2",
"reviewid": 76
}
}], [{
"private_review_ids": {
"category": "cat1",
"name": "name1",
"phone": "phone1",
"comment": "com1",
"reviewid": 240
}
}, {
"private_review_ids": {
"category": "cat2",
"name": "name2",
"phone": "phone2",
"comment": "com2",
"reviewid": 241
}
}]
Which...is not correct JSON. Jsonlint.com will tell you that.
The way it should be is:
[{
"user_review_ids": [{
"category": "cat1",
"name": "name1",
"phone": "phone1",
"comment": "com1",
"reviewid": 32
}, {
"category": "cat2",
"name": "name2",
"phone": "phone2",
"comment": "com2",
"reviewid": 76
}],
"private_review_ids": [{
"category": "cat1",
"name": "name1",
"phone": "phone1",
"comment": "com1",
"reviewid": 240
}, {
"category": "cat2",
"name": "name2",
"phone": "phone2",
"comment": "com2",
"reviewid": 241
}]
}]
Can you tell me what I need to do with my php code so it outputs the correct JSON?
The code right now is:
<?php
require('file.php');
$UserReviewID = ('32,76');
$UserReviewID = explode(",",$UserReviewID);
$PrivateReviewID = ('240,241');
$PrivateReviewID = explode(",",$PrivateReviewID);
//for user_review_ids
$results = array();
//for private_review_ids
$results2 = array();
foreach($UserReviewID as $UserReviewID) {
$sql2 = "SELECT * FROM review WHERE review_id = ?";
$stmt2 = $con->prepare($sql2) or die(mysqli_error($con));
$stmt2->bind_param('i', $UserReviewID) or die ("MySQLi-stmt binding failed ".$stmt2->error);
$stmt2->execute() or die ("MySQLi-stmt execute failed ".$stmt2->error);
$result2 = $stmt2->get_result();
while($row = mysqli_fetch_array($result2)) {//make an array called $results
$results[] = array('user_review_ids' => array(
'category' => $row['cat_name'],
'name' => $row['name'],
'phone' => $row['phone'],
'comment' => $row['comment'],
'reviewid' => $row['review_id'],
));
}
}
foreach($PrivateReviewID as $PrivateReviewID) {
$sql2 = "SELECT * FROM review WHERE review_id = ?";
$stmt2 = $con->prepare($sql2) or die(mysqli_error($con));
$stmt2->bind_param('i', $PrivateReviewID) or die ("MySQLi-stmt binding failed ".$stmt2->error);
$stmt2->execute() or die ("MySQLi-stmt execute failed ".$stmt2->error);
$result2 = $stmt2->get_result();
while($row = mysqli_fetch_array($result2)) {//make an array called $results2
$results2[] = array('private_review_ids' => array(
'category' => $row['cat_name'],
'name' => $row['name'],
'phone' => $row['phone'],
'comment' => $row['comment'],
'reviewid' => $row['review_id'],
));
}
}
echo json_encode($results) .",";
echo json_encode($results2);
?>