Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL GROUP von oder mit PHP?

Es erscheint einfacher, kein GROUP BY zu verwenden zumal es Ihnen nicht die gewünschten Daten liefert. Wählen Sie stattdessen einfach alle aus und sortieren Sie sie nach Anbieter und vielleicht Künstler als Untersortierung wie folgt

<?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;
    }
?>

NACH DER AKTUALISIERUNG:

<?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>';