ठीक है तो मैंने आपका समाधान लिखा है। आपको यह सुनिश्चित करना होगा कि द्वारा आदेश वहां शामिल है क्योंकि यह मानता है कि आप उन्हें वहां वस्तुओं के साथ एक साथ ऑर्डर कर रहे हैं। मुझे यह भी नहीं पता था कि आपका प्रकाशक कैसे संग्रहीत किया गया था, इसलिए मैंने इसे एक अलग तालिका में अलग कर दिया (यह आपको वहां प्रकाशक द्वारा भी आइटम प्राप्त करने की अनुमति देगा), जो अब 4 जुड़ता है। इसके अलावा एक और नोट पर मैंने इसे आंतरिक जुड़ने के लिए भी अपडेट किया है। इस तरह आपको उन कंसोल के लिए खाली परिणाम नहीं मिलेंगे जिनके पास कोई गेम असाइन नहीं किया गया है। यदि आप इन्हें चाहते हैं तो आप आसानी से जुड़ने को बदल सकते हैं ताकि यह आपको वे परिणाम भी दे सके। मुझे बताएं कि क्या यह मदद करता है
//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);