How to convert mysqli result to JSON? [duplicate]

$mysqli = new mysqli('localhost','user','password','myDatabaseName');
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM phase1")) {

    while($row = $result->fetch_array(MYSQLI_ASSOC)) {
            $myArray[] = $row;
    }
    echo json_encode($myArray);
}

$result->close();
$mysqli->close();
  1. $row = $result->fetch_array(MYSQLI_ASSOC)
  2. $myArray[] = $row

output like this:

[
    {"id":"31","name":"pruduct_name1","price":"98"},
    {"id":"30","name":"pruduct_name2","price":"23"}
]

If you want another style, you can try this:

  1. $row = $result->fetch_row()
  2. $myArray[] = $row

output will like this:

[
    ["31","pruduct_name1","98"],
    ["30","pruduct_name2","23"]
]

Here's how I made my JSON feed:

$mysqli = new mysqli('localhost', 'user', 'password', 'myDatabaseName');
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM phase1")) {
    $tempArray = array();
    while ($row = $result->fetch_object()) {
        $tempArray = $row;
        array_push($myArray, $tempArray);
    }
    echo json_encode($myArray);
}

$result->close();
$mysqli->close();

As mentioned, json_encode will help you. The easiest way is to fetch your results as you already do it and build up an array that can be passed to json_encode.

Example:

$json = array();
while($row = $stmt->fetch()){
  $json[]['foo'] = "your content  here";
  $json[]['bar'] = "more database results";
}
echo json_encode($json);

Your $json will be a regular array with each element in it's own index.

There should be very little changed in your above code, alternativly, you can return both XML and JSON since most of the code is the same.