sql >> Database teknologi >  >> RDS >> Mysql

MySQL GROUP ved at bruge PHP?

Det virker nemmere ikke at bruge en GROUP BY især da det ikke vil give dig de data, du ønsker. Så i stedet skal du bare vælge dem alle og sortere dem efter udbyder og måske kunstner som en undersortering som sådan

<?php 
    $result = $mysqli->query("SELECT * FROM `table` ORDER BY provider, artist");

    $current_provider = NULL;

    while ($data = $result->fetch_object()){
        if ( $current_provider != $data->provider ) {
            // new provider
            echo 'provider '. $data->provider;
            $current_provider = $data->provider;
        }
        echo $data->artist;
    }
?>

EFTER OPDATERING:

<?php
    $service = $db->query("SELECT * FROM `system` ORDER BY provider, artist");

    $current_provider = NULL;

    while ($data = $service->fetch_object()) {

        if ( $current_provider != $data->provider ) {
            if ( $current_provider !== NULL ) {
                echo '</div>';
            }
            echo '<div class="service">';
            echo '<p class="lower">' . $data->provider . '</p>';
            $current_provider = $data->provider;
        }
        echo '<a href="?artist=' . $data->artist '">' .
             $data->artist . '</a><br/>';   
    }
    echo '</div>';


  1. Mysql :Ikke tilladt at returnere et resultatsæt fra en funktion

  2. Kontrollerer flere kolonner for én værdi

  3. mysql med Exited(1) fra docker

  4. Hvad er sqlite-ækvivalenterne til MySQL's INTERVAL og UTC_TIMESTAMP?