Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Lieferantenliste mit zugehörigen Produkten ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Lieferantenliste mit zugehörigen Produkten ausgeben

    Hallo,
    ich arbeite gerade ein PHP Video durch. Im aktuellen Kapitel gibt es eine Datenbank mit einer fiktiven Lieferantenliste. In einer Tabelle gibt es Produkte (Pflanzen), welche den Lieferanten zugeordnet sind. Nun sollen alle Lieferanten in einer Tabelle aufgelistet werden und dazu, welche Pflanzen dieser liefert. Soweit ist alles klar und funtkioniert schon. Derzeit wird jedoch, falls ein Lieferant mehrere Planzen liefert, dieser auch mehrmals aufgelistet. Nun möchte ich das Beispiel dahingehend anpassen, dass jeder Lieferant nur einmal gelistet wird und in der Tabellenspalte mit der Überschrift "Pflanzen" - alle Pflanzen eingetragen werden, die der betreffende Lieferant liefert.
    Mit GROUP BY wird zwar jeder Lieferant nur einmal ausgegeben, allerdings auch immer nur eine zugehörige Pflanze.

    Anbei der derzeitige Code:

    PHP-Code:
    <?php
    require_once "lesson_10_01_04_db_connection.php";

    $ergebnis_lieferanten $mysqli->query("SELECT lieferanten.liefer_id, firma, strasse, plz, ort, name FROM pflanzen RIGHT JOIN lieferanten ON pflanzen.liefer_id = lieferanten.liefer_id /*GROUP BY lieferanten.firma*/ ORDER BY lieferanten.firma DESC ");

    echo 
    "<h1>Lieferantenliste</h1>";
    echo 
    "<table border='0' cellspacing='0' cellpadding='0'>\n";
    echo 
    "<tr><th>Firma</th><th>Straße</th><th>PLZ</th><th>Ort</th><th>Pflanzen</th></tr>\n";
    while (
    $zeile $ergebnis_lieferanten->fetch_array()) {
        
    $lieferanten_firmenid =  htmlspecialchars($zeile['liefer_id']);
        
    $lieferanten_firmenname =  htmlspecialchars($zeile['firma']);
        
    $lieferanten_strasse htmlspecialchars($zeile['strasse']);
        
    $lieferanten_plz htmlspecialchars($zeile['plz']);
        
    $lieferanten_ort htmlspecialchars($zeile['ort']);
        
    $lieferanten_pflanzen htmlspecialchars($zeile['name']);

        echo     
    "<tr><td>" $lieferanten_firmenname "</td>"
                
    "<td>" $lieferanten_strasse "</td>"
                
    "<td>" $lieferanten_plz "</td>"
                
    "<td>" $lieferanten_ort "</td>"
                
    "<td>" $lieferanten_pflanzen "</td>"
                
    "</tr>\n";
    }
    echo 
    "</table>";

    $ergebnis_lieferanten->close();
    $mysqli->close();
    ?>

    Das Ergebnis sieht wie auf dem Bild im Anhang aus.

    Vielen Dank!
    Angehängte Dateien


  • #2
    Hallo!

    Derzeit wird jedoch, falls ein Lieferant mehrere Planzen liefert, dieser auch mehrmals aufgelistet.
    Du suchst Gruppenbruch -> http://php-de.github.io/jumpto/gruppenbruch/

    EDIT:

    Hier war genau so eine Frage vor kurzem: http://www.php.de/datenbanken/113349...lte-werte.html

    LG
    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


    • #3
      Zitat von hausl Beitrag anzeigen
      Hallo!
      Du suchst Gruppenbruch -> http://php-de.github.io/jumpto/gruppenbruch/
      Hallo,
      danke für die schnelle Antwort. Ich werde das sobald ich Zeit habe gleich mal ausprobieren.

      Zitat von hausl Beitrag anzeigen
      Hallo!
      Hier war genau so eine Frage vor kurzem: http://www.php.de/datenbanken/113349...lte-werte.html
      Ich habe zwar gesucht aber diese Lösung nicht gefunden

      Kommentar


      • #4
        Hat geklappt - Danke!

        Kommentar

        Lädt...
        X