I'm trying to represent data in this format with php and mysql database that I made, the format below is what I need to get:
{
"data": [
{
"id": "1",
"name": "bad boys",
"genres": [
"action",
"comedy"
]
},
{
"id": "2",
"name": "star wars",
"genres": [
"action",
"Sci-Fi"
]
},
{
"id": "3",
"name": "titanic",
"genres": "drama"
}
]
}
but what I'm getting is this format:
{
"data": [
{
"id": "1",
"name": "bad boys",
"genres": "action"
},
{
"id": "1",
"name": "bad boys",
"genres": "comedy"
},
{
"id": "2",
"name": "star wars",
"genres": "action"
},
{
"id": "2",
"name": "star wars",
"genres": "sci-fi"
},
{
"id": "3",
"name": "titanic",
"genres": "drama"
}
]
}
First I made a query to select movies from database:
public function readMovie() {
$query =
'SELECT
movie.id,
movie.name,
genre.name as genre_name
FROM movie
INNER JOIN movie_genre
ON movie_genre.movie_id = movie.id
INNER JOIN genre
ON genre.id = movie_genre.genre_id';
$stmt = $this->conn->prepare($query);
$stmt->execute();
return $stmt;
}
then I write some code so I can convert it to an array:
$database = new Database();
$db = $database->connect();
$movie = new Movie($db);
$result = $movie->readMovie();
$num = $result->rowCount();
if($num > 0){
$movies_arr = array();
$movies_arr['data'] = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
extract($row);
$movie_item = array(
'id' => $id,
'name' => $name,
'genres' => $genre_name
);
array_push($movies_arr['data'], $movie_item);
}
echo json_encode($movies_arr);
} else {
echo json_encode(
array('message' => 'No Movie Found')
);
}
this is my schema click here
I made this api to using it in flutter app
if anyone can help me please