Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Beberapa tabel MySQL ke json_encode

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);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi RTRIM() Bekerja di MySQL

  2. Peringatan:mysql_fetch_array():argumen yang diberikan bukan sumber hasil MySQL yang valid

  3. Tidak dapat membuat tabel (errno:150) di FOREIGN KEY

  4. MySQL:Secara permanen mendapatkan kunci metadata tabel Menunggu

  5. mysql PDO dan prosedur tersimpan injeksi SQL dinamis