Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Abfrageproblem

Einklappen

Neue Werbung 2019

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

  • MySQL Abfrageproblem

    Hallo zusammen,

    bin heute das erste mal hier unterwegs. Leider habe ich bisher nicht finden können was mir hilft.
    Sicherlich gibt es aber jemanden hier im Forum der nicht gerade so auf dem Schlauch steht wie ich es tue.

    Mein Problem:

    Ich möchte in PHP in Verbindung mit MySQL eine Tabelle ausgeben.

    in folgender Form:
    Teamleiter 1 Einrichter XYZ 1
    Einrichter XYZ 2
    Einrichter XYZ 3
    Einrichter XYZ 4
    Teamleiter 2 Einrichter XY 1
    Einrichter XY 2
    Einrichter XY 3
    Teamleiter 3 Einrichter X 1
    Einrichter X 2
    Einrichter X 3
    Einrichter X 4
    Einrichter X 5
    Teamleiter 4 usw..... usw......
    Leider bekomme ich die Abfrage nicht so hin wie es möchte.

    Meine SQL sieht folgend aus:


    ID | Einrichter | Teamleiter | Teamnummer

    ID ist fortlaufend einmalig
    Einrichter kann doppelt sein aber ist jeweils einem Teamleiter zugeordnet
    Teamleiter entsprechend pro Zeile zu einem Einrichter.

    Teamnummer ... Naja einfach ne Zahl für den entsprechenden Teamleiter.


    Leider komme ich gerade überhaupt nicht klar wie ich die Abfrage in SQL schreibe und dann in Verbindung mit Schleifen in PHP ausgebe sodass die Ausgabe so aussieht wie oben die Tabelle.

    Kann mir BITTE irgendwer Helfen.... Bin total verzweifelt weil ich dieses nicht gelöst bekomme obwohl ich seit Jahre in PHP und MySQL unterwegs bin.....(Hobby)

    Vielen lieben Dank im voraus.

    Gruß Silko


  • #2
    Was du suchst ist "GROUP_CONCAT".

    Einfaches Beispiel auf Basis deiner Angaben:

    Code:
    CREATE TABLE `test` (
        `id` int unsigned auto_increment primary key,
        `einrichter` varchar(255) not null,
        `teamleiter` varchar(255) not null,
        `teamnummer` int(10) null
    ) collate = utf8_unicode_ci;
    
    INSERT INTO `test` (`einrichter`, `teamleiter`) VALUES
      ('Einrichter XYZ 1', 'Teamleiter 1'),
      ('Einrichter XYZ 2', 'Teamleiter 1'),
      ('Einrichter XYZ 3', 'Teamleiter 1'),
      ('Einrichter XYZ 4', 'Teamleiter 1'),
      ('Einrichter XY 1', 'Teamleiter 2'),
      ('Einrichter XY 2', 'Teamleiter 2'),
      ('Einrichter XY 3', 'Teamleiter 2'),
      ('Einrichter XY 4', 'Teamleiter 2'),
      ('Einrichter X 1', 'Teamleiter 3'),
      ('Einrichter X 2', 'Teamleiter 3'),
      ('Einrichter X 3', 'Teamleiter 3'),
      ('Einrichter X 4', 'Teamleiter 3');
    Daten abfragen:
    Code:
    SELECT `teamleiter`, GROUP_CONCAT(`einrichter`) AS einrichter
    FROM `test` GROUP BY `teamleiter`;
    Output:
    Code:
    |   teamleiter |                                                          einrichter |
    |--------------|---------------------------------------------------------------------|
    | Teamleiter 1 | Einrichter XYZ 1,Einrichter XYZ 2,Einrichter XYZ 3,Einrichter XYZ 4 |
    | Teamleiter 2 |     Einrichter XY 1,Einrichter XY 2,Einrichter XY 3,Einrichter XY 4 |
    | Teamleiter 3 |         Einrichter X 1,Einrichter X 2,Einrichter X 3,Einrichter X 4 |
    Die Kommas bei "verbundenen" Einrichter kannst du ja dann mit einem Zeilenumbruch (oder was auch immer du willst) ersetzen.

    Kommentar


    • #3
      @CPCoder vielen lieben Dank.
      Es kann alles so einfach sein

      Kommentar

      Lädt...
      X