Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL-Abfrage doppelte Werte

Einklappen

Neue Werbung 2019

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

  • shermano
    hat ein Thema erstellt [Erledigt] SQL-Abfrage doppelte Werte.

    [Erledigt] SQL-Abfrage doppelte Werte

    Hallo,

    ich habe folgende SQL Tabelle eines Spielplans mehrerer Teams eines Vereins:
    Datum | Uhrzeit | Team A | Team B |
    A | 10.00 | Team 1 | Gegner 1 |
    A | 16.00 | Team 2 | Gegner 2 |
    A | 20.00 | Team 3 | Gegner 3 |
    B | 16.00 | Team 2 | Gegner 2 |
    B | 20.00 | Team 3 | Gegner 3 |
    C | 16.00 | Team 2 | Gegner 2 |
    C | 20.00 | Team 3 | Gegner 3 |
    Insgesamt ca. 80 Einträge. Nun möchte ich folgende exemplarische html Darstellung haben, finde aber keine passende SQL Abfrage:

    PHP-Code:
    while($_fetchGames mysql_fetch_assoc($_queryGames)) {
        <
    table>
            <
    tr>
                <
    td>colspan=3Datum A </td>
            </
    tr>
            <
    tr>
                <
    td>Uhrzeit</td>
                <
    td>Team A</td>
                <
    td>Team B</td>
            </
    tr>
            <
    tr>
                <
    td>colspan=3> . $_fetchGames['matchDate'] . </td>
            </
    tr>
            <
    tr>
                <
    td>. $_fetchGames['matchTime'] .</td>
                <
    td>. $_fetchGames['teamA'] .</td>
                <
    td>. $_fetchGames['teamB'] .</td>
            </
    tr>
        <
    table>

    "Distinct" oder "group by" passt irgendwie nicht richtig. Bin nicht sicher, ob ich das überhaupt mit einer Query hinbekomme, oder ob ich ggf PHP code bauen muss. Da würde mir aber nur etwas wie While-Schleife in einer While Schleife einfallen.

    Ideen?

  • hausl
    antwortet
    Sehr gut... und ein Lob für das selbständige durchlesen - behirnen - ausarbeiten!

    Einen Kommentar schreiben:


  • shermano
    antwortet
    Hallo zusammen, vielen Dank. Habe es genau so hinbekommen wie es in dem Tutorial für Gruppenbruch beschrieben wurde. Spitzen Forum.

    Merci

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Sortiere die Daten nach der "Gruppe" (In deinem Fall Datum, anschliessend nach Uhrzeit)
    Merke dir die "letzte Gruppe" (anfangs leer)
    Schleife beginnt:
    Wenn "letzte Gruppe" ungleich "aktuelle Gruppe" => neue Überschrift + "letzte Gruppe" = "aktuelle Gruppe"
    Ausgabe des Datensatzes
    (Wiederholung solange Daten vorhanden sind)

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Ja, du suchst den Gruppenbruch.. Du brauchst dazu auch kein GROUP etc.. Deine reine DB Ausgabe (zB in PMA (phpMyAdmin) etc... ) sollte so aussehen, das ist die Ausgangsbasis dafür - dann kannst du nach der ersten Spalte "brechen", siehe dem Tutorial.

    Code:
    Datum A | 10.00 | Team 1 | Gegner 1 |
    Datum A | 16.00 | Team 2 | Gegner 2 |
    Datum A | 20.00 | Team 3 | Gegner 3 |
    Datum B | 16.00 | Team 2 | Gegner 2 |
    Datum B | 20.00 | Team 3 | Gegner 3 |
    Datum C | 16.00 | Team 2 | Gegner 2 |
    Datum C | 20.00 | Team 3 | Gegner 3 |

    Einen Kommentar schreiben:


  • shermano
    antwortet
    Hallo,
    ich meinte die Ausgabe in etwa so:
    |--------------------------------|
    | Datum A |
    |--------------------------------|
    | 10.00 | Team 1 | Gegner 1 |
    | 16.00 | Team 2 | Gegner 2 |
    | 20.00 | Team 3 | Gegner 3 |
    |--------------------------------|
    | Datum B |
    |--------------------------------|
    | 16.00 | Team 2 | Gegner 2 |
    | 20.00 | Team 3 | Gegner 3 |
    |--------------------------------|
    | Datum C |
    |--------------------------------|
    | 16.00 | Team 2 | Gegner 2 |
    | 20.00 | Team 3 | Gegner 3 |
    |--------------------------------|
    Gruppenbruch klingt für mich gut, verstehe es aber einfach noch nicht. Den code habe ich exemplarisch getippt ohne zu prüfen, ob er synthaktisch 100%ig ist. Wollte ein Verständnis meiner Frage besser darstellen und daher aus meinem Code nur die "interessante Stelle" beschreiben.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Dein PHP ist auch syntaktisch falsch.

    Zitat von Threadtitel
    SQL-Abfrage doppelte Werte
    Irgendwie passt das nicht dazu, oder was übersehe ich?

    "Distinct" oder "group by" passt irgendwie nicht richtig
    Wie kommst du auf die beiden? Ich verstehe das so, das du nur eine einfache Liste haben willst?

    Und das kannst du für die Ausgabedarstellung ev. auch noch brauchen: http://php-de.github.io/jumpto/gruppenbruch/

    LG

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Wenn die Struktur schon so vorgegeben ist, wie du sie oben gepostet hast, brauchst du doch nur einen simplen SELECT drauf zu fahren.

    Falls du ein Kriterium zur Unterscheidung einbauen möchtest, z.B. "Datum A", dann benutz WHERE... ansonsten heisst das Zauberwort "Gruppenbruch" (erstmal alle Paarungen von Tag A, dann wieder eine Zwischenüberschrift und alle Paarungen von Tag B, usw.)

    Das Code-Konstrukt ist aber falsch, neben Syntaxfehlern ist der gröbste Logikfehler, das du die Tabelle innerhalb der while-Schleife jedesmal neu erstellst.

    Einen Kommentar schreiben:

Lädt...
X