Ankündigung

Einklappen
Keine Ankündigung bisher.

LEFT JOIN, gruppieren und sortieren....

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • LEFT JOIN, gruppieren und sortieren....

    [/PHP]Hallo,
    bin neu hier und auch die php mysql Geschichte ist noch recht neu für mich.....
    deshalb hoffe ich auf Hilfe:

    Folgende Situation:

    Es gibt zwei Tabellen, eine mit Alben und eine mit Songs.
    Gemeinsamer Schlüssel ist die albumid. Anhand dieser würde ich gerne die Songs
    nach Alben sortiert und gruppiert ausgeben.
    Das sortieren gelingt mir mit unten stehendem left join auch schon, aber wie bekomme ich es hin, dass der Albumtitel jeweils nur einmal angezeigt wird und dazu jeweils die dazugehörigen Songs (unterschiedliche Anzahl)?


    album:

    id | categoryid | albumtitle
    ------------------------------------------
    5 | 3 | albumtitle1
    6 | 3 | albumtitle2
    7 | 3 | albumtitle3



    songs:

    id | albumid | songtitle
    ------------------------------------------
    1 | 5 | song1a
    2 | 5 | song2a
    3 | 5 | song3a
    4 | 6 | song1b
    5 | 6 | song2b
    6 | 7 | song1c
    7 | 7 | song2c



    Gewünschte Ausgabe:

    albumtitle1:
    song1a
    song2a
    song3a

    albumtitle2:
    song1b
    song2b

    albumtitle3
    song1c
    song2c


    PHP-Code:
    ///AKTUELLES ALBUM
    require_once('../includes/DbConnector.php');
    $connector = new DbConnector();
    $result $connector->query(

    "SELECT 
    album.id, album.categoryid, album.albumtitle,songs.songtitle 
    FROM 
    album  
    LEFT JOIN songs 
    ON album.id = songs.albumid  
    WHERE 
    album.categoryid = 3  "
    );

    while (
    $row $connector->fetchArray($resultMYSQL_ASSOC)){


                    
    $idalbum stripslashes($row['id']);
                    
    $titlealbum stripslashes($row['albumtitle']);
                    
    $songs stripslashes($row['songtitle']);
                    

    $albumliste .= '<div id="AlbumTitle">'.$titlealbum.':</div>

    //////das hier klappt alles natürlich so nicht..... aber wie? 

                            <div id="Songs">'
    .$songs.'</div>';

    }

    echo 
    $albumliste
    Mit "GROUP BY album.id " hab ich es auch schon probiert, dann bekomme ich aber jeweils nur einen Song zu jedem Album ausgegeben...

    Wäre für jeden Tip dankbar!

    Grüße, Bastian!


  • #2
    Schau mal hier: Gruppenbruch (Standardverfahren) - PHP.de Wiki

    [OT]
    Dieser Wikiartikel hat sich echt bezahlt gemacht.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Hey nikosch,
      vielen dank für den Tip!
      werde das gleich mal studieren.

      Kommentar

      Lädt...
      X