Ожидаемый JSON:Как получить данные JSON из таблицы MySQL с помощью PHP?
{
id: 1,
name: "Sony Xperia Z3",
price: 899,
specs: {
manufacturer: "Sony",
storage: 16,
os: "Android",
camera: 15
},
description: " WOW",
rating: 4,
image: {
small: "assets/images/sony-xperia-z3.jpg",
large: "assets/images/sony-xperia-z3-large.jpg"
}
}
MySQL таблицы:
CREATE TABLE IF NOT EXISTS `phones` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`price` int(11) NOT NULL,
`manufacturer` varchar(100) NOT NULL,
`storage` tinyint(4) NOT NULL,
`os` varchar(100) NOT NULL,
`camera` tinyint(4) NOT NULL,
`description` varchar(400) NOT NULL,
`rating` tinyint(4) NOT NULL,
`image_small` varchar(200) NOT NULL,
`image_large` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;`
Мой код PHP:
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli("localhost", "root", "", "php_test");
$result = $conn->query("SELECT id, name,price,manufacturer,storage,os,camera,description FROM phones");
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "[") {$outp .= ",";}
$outp .= '{"id":"' . $rs["id"] . '",';
$outp .= '"name":"' . $rs["name"] . '",';
$outp .= '"price":"' . $rs["price"] . '",';
$outp .='"specs:"'.'{"manufacturer":"'. $rs["manufacturer"].'"}'.'",';
$outp .= '"storage":"' . $rs["storage"] . '",';
$outp .= '"os":"' . $rs["os"] . '",';
$outp .= '"camera":"' . $rs["camera"] . '",';
$outp .= '"description":"'. $rs["description"] . '"}';
}
$outp .="]";
$conn->close();
echo($outp);
//echo json_encode($outp);
?>
спасибо Dan Его работа наконец – MAFAIZ