Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme bei der Abfrage über verknüpfte Tabellen

Einklappen

Neue Werbung 2019

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

  • Probleme bei der Abfrage über verknüpfte Tabellen

    Hallo ihr lieben,
    ich bin eine Anfängerin deswegen habt bitte Nachsicht.

    Also im Moment komm ich nicht weiter.

    Ich habe 2 Tabellen. In die eine Tabelle (bewertungen) trägt der User mittels Auswahlliste ein Wert von 1-5 (Spalte: sterne_id) ein. In der Anderen Tabelle (sterne) habe ich 5 Bilder als Pfad hinterlegt mit dementsprechenden ids 1-5. Die beiden Tabellen habe ich verknüpft so das die id von Tabelle sterne mit der sterne_id der Tabelle bewertungen verknüpft sind.

    Bei der Ausgabe wollte ich also das wenn jemand zb. 5 Sterne an sterne_id in bewertungen übermittelt das dann das bild mit der id 5 aus der Tabelle sterne angezeigt wird.
    Ich habe viele Varianten probiert mit verschachtelten Abfragen über WHERE und JOIN Bedingungen, jedoch verzweifle ich weil der User ja keinen festen Wert übermittelt. Sondern von 1-5.
    Ich habe es immer nur so geschafft das die id statt das Bild angezeigt wurde. Also wenn der User 1 Stern ausgewählt wurde die id 1 von sterne ausgegeben. Oder es gelang das zwar die Bilder angzeigt wurden, jedoch so User A wählt 1 Stern und User B 2 Sterne dann wurde bei beiden Usern auch beide Bilder dargestellt.
    Ich muss noch dazu sagen das ich in der Tabelle bewertungen noch Spalten habe wie u.a. ip, user_id, produkt_id. Ich habe soviele WHERE Varianten ausprobiert, ich seh den Wald vor lauter Bäume nicht mehr.
    Hat vielleicht jemand einen Ansatz der mir weiterhelfen könnte? Das wäre genial.
    Lg

  • #2
    Was hast du denn probiert? Eigentlich bist du auf der richtigen Spur.

    Code:
    SELECT b.id AS bewertung_id, bild FROM bewertungen b JOIN sterne s ON b.sterne_id = s.id

    Kommentar


    • #3
      Hallo monolith,
      danke der schnellen Antwort. Ich habe dein Code mal ausprobiert und jetzt bekomm ich auch wieder alle Bilder dargestellt. Sprich User A wählt 1 Stern und User B 2Sterne, dann werden bei beiden Usern beide Bilder (1&2 Sterne) dargestellt.

      Hier mal mein jetztiger Code:
      PHP-Code:
      $ergebnis mysqli_query($db"SELECT b.id AS bewertungen_id, bild FROM bewertungen b JOIN sterne s ON b.sterne_id = s.id");
      while(
      $row mysqli_fetch_object($ergebnis))
      {
        echo 
      '<div class="bewertung_einzeln_sterne"><img src="images/sterne/'.$row->bild.'"></div>';
      }
              echo 
      '</div>'
      Das Bild ist in der Tabelle Sterne, weil hier FROM bewertungen?! Kenne mich noch nicht so wirklich mit diesem Prinzip aus..

      Vielen Dank für die Hilfe..

      Kommentar


      • #4
        Zitat von Kaktusanfasser Beitrag anzeigen
        Das Bild ist in der Tabelle Sterne, weil hier FROM bewertungen?! Kenne mich noch nicht so wirklich mit diesem Prinzip aus..

        Vielen Dank für die Hilfe..
        Das Prinzip nennt sich JOIN und ist ein elementares Prinzip bei relationalen Datenbanken. Beschäftige Dich also damit.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Da muss doch noch irgendeine WHERE Bedingung rein dmit ich es dem User zuordnen kann oder?

          Kommentar


          • #6
            Zitat von Kaktusanfasser Beitrag anzeigen
            Da muss doch noch irgendeine WHERE Bedingung rein dmit ich es dem User zuordnen kann oder?
            Muß nicht zwingend, aber wenn Du das möchtest, dann ja.
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar


            • #7
              Vielen Dank hat jetzt super geklappt. Musste den Code nur ein bißchen n mein restlichen Code anpassen...

              Hier noch mein fertigen Code, falls jemand interessiert

              PHP-Code:
              $sql "SELECT
                                  nickname,
                                  sagt,
                                  bewertung,
                                  bewertung_zeit,
                                  b.id AS bewertungen_id,
                                  sternebild_klein
                          FROM
                                  bewertungen b
                          JOIN 
                                  sterne_bilder s ON b.sterne_id = s.id
                          WHERE
                                  pro_id=1
                         "
              ;
              bla bla

              echo '<div class="bewertung_einzeln_sterne"><img src="images/sterne/'.$row['sternebild_klein'].'"></div>';
                      echo 
              '</div>';
              bla bla 
              Dankeschöön!!

              Kommentar

              Lädt...
              X