Ankündigung

Einklappen
Keine Ankündigung bisher.

2x SQL Abfragen aber 1x Ausgeben

Einklappen

Neue Werbung 2019

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

  • 2x SQL Abfragen aber 1x Ausgeben

    Hallo Zusammen

    Ich habe eine Tabelle mit Mitglieder verschiedener Vereinen. Nun möchte ich eine Webseite machen, mit einer Übersicht der verschiedenen Vereinen und die dazugehörigen Mitglieder.

    Ich habe gedacht ich mache zuerst einmal eine DISTINC-Abfrage der Vereine und speichere die in eine Variable.

    PHP-Code:
    $sql "SELECT DISTINC verein FROM datenbank"
    $query mysqli_real_query($sql);
    while(
    $fetch mysqli_fetch_assoc($query)){
    $verein1 $fetch['verein']

    Wie kann ich die automatisch in Variablen schreiben?

    Anschließend mache ich eine SELECT-Abfrage wo ich alle Mitglieder der entsprechende Vereine ausgebe.

    PHP-Code:
    $sql "SELECT * FROM datenbank WHERE verein= $verein1"
    $query mysqli_real_query($sql);
    while(
    $fetch mysqli_fetch_assoc($query)){
    echo 
    '<div>'
     
    echo '<h1>' .$fetch['$verein1''</h1>';
     echo 
    '<p>' .$fetch['name''</p>';
     echo 
    '<p>' .$fetch['vorname''</p>';
    ...
    echo 
    '</div>'

    PHP-Code:
    $sql "SELECT * FROM datenbank WHERE verein= $verein2"
    $query mysqli_real_query($sql);
    while(
    $fetch mysqli_fetch_assoc($query)){
    echo 
    '<div>'
     
    echo '<h1>' .$fetch['$verein2''</h1>';
     echo 
    '<p>' .$fetch['name''</p>';
     echo 
    '<p>' .$fetch['vorname''</p>';
    ...
    echo 
    '</div>'

    Funktioniert das so?
    Gibt es eine einfachere Lösung für mein Projekt?

    Über Hilfe würde ich mich sehr freuen.
    Liebe Grüsse Zeroplexer

  • #2
    Funktioniert das so?
    Nein. Dir fehlen Grundlagen zu PHP und SQL.

    Gibt es eine einfachere Lösung für mein Projekt?
    Mit PDO reicht ein Query.
    PHP-Code:
    $stmt $pdo->query('SELECT verein, name, vorname FROM datenbank');
    $data $stmt->fetchAll(PDO::FETCH_GROUP);

    foreach (
    $data as $verein => $mitglieder) {
        
    // ...

    Kommentar


    • #3
      Das ist prinzipiell ein Darstellungsproblem. Siehe https://php-de.github.io/jumpto/gruppenbruch/ Beispiel B1. Der Verin ist die Marke, das Mitglied das Modell.

      Kommentar


      • #4
        erc An wen wende ich mich, wenn in dem Artikel was nicht ganz korrekt ist?

        Kommentar


        • #5
          Hausl ist sehr aktiv, was die FAQ angehet. Ansonsten ist das ein Github Projekt, da kannst du auch direkt mitwirken: https://github.com/php-de/php-de.github.io/ (Entweder direkt als Contributer, oder per Fork und Pull Request)

          Kommentar


          • #6
            Hallo,

            ja, also entweder Du machst das alles in eine Tabelle sotierst die Ausgabe via ORDER BY verein und verarbeitest deine Daten dann weiter mit einen Gruppenwechsel, oder du machst objektorientiert bzw. in der 3. Normalform. Das heißt:
            - Ein Verein kann mehrere Mitglieder haben
            - Ein Mitglied kann zu mehreren Vereinen gehören

            Das ergibt dann drei Tabellen:
            - Mitglieder
            - Vereine
            - Mitglieder_Vereine_Beziehung

            Siehe dazu auch den Wikipedia Eintrag: https://de.wikipedia.org/wiki/Normal...form_.283NF.29

            Das kann man dann auch schon über objektrelationales Mapping abbilden: https://de.wikipedia.org/wiki/Objekt...nale_Abbildung


            MFG

            derwunner

            Kommentar


            • #7
              Zitat von Dormilich Beitrag anzeigen
              erc An wen wende ich mich, wenn in dem Artikel was nicht ganz korrekt ist?
              Danke für die Info.. das Issue hab ich gesehen. In dem Artikel wird leider auch tlw. noch mysql_ verwendet. Die Code-Snippets dieses Artikels sollten mal generell überholt werden. Ich schau mal wie ich dazu komme.

              Und natürlich... jeder der Zeit, Lust hat kann gerne mitmachen, wie erc oben schon beschrieben hat.
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Zitat von hausl Beitrag anzeigen
                Die Code-Snippets dieses Artikels sollten mal generell überholt werden. Ich schau mal wie ich dazu komme.
                Wenn ich weiß, welche Variante genommen werden soll, kann ich da gerne helfen.

                Kommentar


                • #9
                  Zitat von Dormilich Beitrag anzeigen
                  Wenn ich weiß, welche Variante genommen werden soll, kann ich da gerne helfen.
                  Da gibt es eigentlich keine Regel. Ich habe - der Verbreitung unter "Profis" wegen - gerne immer PDO genommen und FETCH_OBJ damit es stimmig im OOP-Kontext bleibt. Das wirkt für mich sehr stimmig. Im Grunde liegt die Wahl beim Ersteller. Die meisten der Beiträge in der Wissensammlung sind ja aus dem alten "Wiki" das es unter der alten php.de (alten vBulletin Version 3.xx) noch gab und stammen noch von nikosch, mermshaus und manko.
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar

                  Lädt...
                  X