Mysql
 sql >> база данни >  >> RDS >> Mysql

Множество MySQL таблица към json_encode

Добре, така че написах вашето решение. Трябва да сте сигурни, че поръчката от е включена там, защото предполага, че ги поръчвате с артикули заедно. Също така не знаех как е съхранен вашият издател, така че разделих това в отделна таблица (това ще ви позволи да получавате елементи и от само там издател), което вече е 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);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите данни за последния месец в MySQL

  2. Създайте MySQL съхранена процедура с помощта на JPA Hibernate

  3. Транзакциите на бази данни в Zend Framework:Изолирани ли са?

  4. MySQL Great Circle Distance (формула на Haversine)

  5. MYSQL:Актуализиране на полето с конкат от множество полета