Ok jadi saya telah menulis solusi Anda. Anda harus yakin bahwa pesanan dengan disertakan di sana karena itu mengasumsikan bahwa Anda memesannya dengan barang-barang yang ada bersama-sama. Saya juga tidak tahu bagaimana penerbit Anda disimpan, jadi saya memisahkannya ke dalam tabel terpisah (ini akan memungkinkan Anda untuk mendapatkan item hanya dengan penerbit di sana), yang sekarang menjadi 4 gabungan. Juga pada catatan lain saya telah memperbaruinya untuk melakukan penggabungan dalam juga. Dengan cara ini Anda tidak akan mendapatkan hasil kosong untuk konsol yang tidak memiliki game yang ditugaskan padanya. Jika Anda menginginkan ini, Anda cukup mengubah gabungan sehingga itu akan memberi Anda hasil itu juga. Beri tahu saya jika ini membantu
//get all of the information
$query = '
SELECT c.consoleId,c.consoleName,m.modelId,m.modelName,g.gameId,g.gameName,p.publisherId,p.publisherName
FROM `consoleconsole` c
INNER JOIN `consolemodel` m ON c.consoleId=m.consoleId
INNER JOIN `consolegame` g ON m.modelId=g.modelId
INNER JOIN `consolepublisher` p ON g.publisherId = p.publisherId
ORDER BY c.consoleName, m.modelName, g.gameName
';
//get the results
$result = mysql_query($query);
//setup array to hold information
$consoles = array();
//setup holders for the different types so that we can filter out the data
$consoleId = 0;
$modelId = 0;
//setup to hold our current index
$consoleIndex = -1;
$modelIndex = -1;
//go through the rows
while($row = mysql_fetch_assoc($result)){
if($consoleId != $row['consoleId']){
$consoleIndex++;
$modelIndex = -1;
$consoleId = $row['consoleId'];
//add the console
$consoles[$consoleIndex]['console'] = $row['consoleName'];
//setup the information array
$consoles[$consoleIndex]['information'] = array();
}
if($modelId != $row['modelId']){
$modelIndex++;
$modelId = $row['modelId'];
//add the model to the console
$consoles[$consoleIndex]['information'][$modelIndex]['model'] = $row['modelName'];
//setup the title array
$consoles[$consoleIndex]['information'][$modelIndex]['title'] = array();
}
//add the game to the current console and model
$consoles[$consoleIndex]['information'][$modelIndex]['title'][] = array(
'game' => $row['gameName'],
'publisher' => $row['publisherName']
);
}
echo json_encode($consoles);