Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhiều bảng MySQL thành json_encode

Ok vì vậy tôi đã viết ra giải pháp của bạn. Bạn phải chắc chắn rằng đơn đặt hàng theo được bao gồm ở đó vì nó giả định rằng bạn đang đặt hàng chúng với các mặt hàng ở đó cùng nhau. Tôi cũng không biết nhà xuất bản của bạn được lưu trữ như thế nào vì vậy tôi đã tách bảng đó thành một bảng riêng (điều này sẽ cho phép bạn sau đó nhận các mục chỉ bởi nhà xuất bản đó), hiện có 4 bảng kết hợp. Ngoài ra, trên một lưu ý khác, tôi đã cập nhật nó để thực hiện các phép nối bên trong. Bằng cách này, bạn sẽ không nhận được kết quả trống cho bảng điều khiển không có bất kỳ trò chơi nào được gán cho chúng. Nếu bạn muốn những điều này, bạn có thể chỉ cần thay đổi các phép nối để nó cũng cung cấp cho bạn những kết quả đó. Hãy cho tôi biết nếu điều này có ích

//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. Express js req.body trả về trống

  2. ĐẶT HÀNG THEO bảng chữ cái đầu tiên sau đó theo số

  3. Truy vấn MYSQL để tìm kiếm qua TẤT CẢ các trường?

  4. MySQL có tự động lập chỉ mục các cột khóa ngoại không?

  5. Viết phiên bắt đầu trên 1 trang hay tất cả các trang?