Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL Abfrage mit LEFT JOIN -> OK, aber ich komm net weiter

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SQL Abfrage mit LEFT JOIN -> OK, aber ich komm net weiter

    Ich arbeite nebenbei an einem Projekt(beschäftigt sich mit Clanmanagement) mit und wir sind gerade dabei die neue Version zu bastelnd die sich grundlegend von der ersten Version unterscheidet.

    In einer Datei soll ich nun diverse SQL Abfragen bündeln in einer, dies ist mir auch mit LEFT Join gelungen.
    Die ganze Abfrage gibt mir dann diverse Datenbankinhalte zurück die nun wie folgt ausgegeben werden müssen:

    jedes team in eine zeile mit Angabe des Game/Gamemodi, Anzahl der Member in diesem Team und die Namen der Teammitglieder.

    Das Problem ist, wenn ich nach der SQL Abfrage eine "while" schleife nutze, zeigt er mir die teams doppelt an und die restlichen Daten überhaupt nicht.

    Angezeigt werden soll ja jedes Team nur einmal, Member können durchaus in mehreren Teams sein.

    Frage..wie definier ich den schleifendurchlauf (aber nicht mit while) um an meine gewünschte ausgabe zu kommen?

    PS:
    Codebeispiele kann ich leider nur bei Interesse als PM schicken, da diese Version des Projektes noch Developer Status hat.

    PSS:
    Ich würd das ja mit meinem Teamleader besprechen, aber der verweilt momentan irgendwo mit seinem Job da wo ich Ihn net erreichen kann

  • #2
    Die Ausgabe dürfte dann wahrscheinlich so aussehen:

    Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName1
    Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName2
    Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName3
    Spiel1/Mod1 - Spieleranzahl1 - TeamName1 - SpielerName4
    Spiel2/Mod1 - Spieleranzahl2 - TeamName1 - SpielerName1
    Spiel2/Mod1 - Spieleranzahl2 - TeamName1 - SpielerName2
    Spiel2/Mod2 - Spieleranzahl2 - TeamName2 - SpielerName1
    Spiel2/Mod2 - Spieleranzahl2 - TeamName2 - SpielerName2

    So in etwa. Nun hast du das Problem, dass die Spiele/Mods doppelt ausgegeben werden, was vollkommen normal ist.

    Du musst also Mitloggen lassen, welches Spiel bereits ausgegeben wurde:

    Code:
    unset ($game);
    while ($myrow = myqsl_fetch_array ($result))
    {
      if ($game != $myrow['spiel_mod'])
      {
        echo $myrow['spiel_mod']; // Ausgabe des Spiels
        $game = $myrow['spiel_mod'];
      }
      echo $myrow['player']; // Ausgabe des Spielers
    }
    Das ist jetzt ein einfaches Beispiel, aber so funktioniert es. Du musst es nur entsprechend erweitern.

    Bei der SQL-Abfrage ist jedoch noch wichtig, das du noch ein ORDER BY für den Spielnamen einbaust.

    Kommentar


    • #3
      das order by erfolgt im vorliegenden beispiel anhand des teamnamens..und dementsprechend muss ich halt nur noch deinen vorschlag anpassen und ausprobieren

      ich meld mich dann wieder hier (hoffentlich) mit Erfolgen etc.

      Thx für Deine Hilfe

      Kommentar


      • #4
        Nach Teamnamen zu sortieren ist natürlich auch möglich, nur nach Spielernamen kannst du nicht sortieren

        BZW: Kannst du schon, aber dann müsstest du die Daten erst in ein Array packen und dann das Array abarbeiten und ausgeben, damit du keine doppelten Spiele hast

        Kommentar

        Lädt...
        X