2 verknpüfte Tabellen und von Tabelle2 immer nur den 1. Wert ?

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

  • 2 verknpüfte Tabellen und von Tabelle2 immer nur den 1. Wert ?

    Hallo Leute

    ich bin recht neu im Thema PHP und MYSQL - kenne mich aber ein wenig mit Datenbanken aus richtung Access aus.

    Ich brauche für die Darstellung einer Bildergalerie eine Art menü und habe dazu 2 Tabellen:

    Tabelle1: hier werden die einzelnen Bildergalerien angelegt und gespeichert
    Tabelle2: hier werden die Bildpfade gespeichert und über eine ID jeweils einer Bildergalerie zugeordnet (die ID = die ID der entsprechenden Galerie) - soweit kein Problem.

    Für die Menüdarstellung brauche ich aber aus dieser Verknüpfung immer nur jeweils das 1. BILD - quasi immer nur den 1. Datensatz.

    Die "normale" SQL-Verknüpfung sieht so aus:



    Code:
    SELECT my_galery.*, my_galery_pics.galerybildbaseid, my_galery_pics.galerybildpfadvorschau
    So werden aber eben alle Galeriene mit jeweils allen darin enthalenen Bildern dargestellt - ich benötige aber wie bereits erwähnt jeweils immer nur ein bild.

    Kann mir hier jemand helfen ?

    CU
    Axel

  • #2
    LIMIT könnte helfen
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Limit ist hier vollkommen falsch.

      Subselect, eventuell auch ein zweifacher JOIN und GROUP BY, vielleicht reicht bei MySQL sogar ein einzelnes GROUP BY - ausprobieren.

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Code:
        select gallery.*, bilder.url 
        from gallery
          (select gallery_id, url
           from bilder
           limit 0, 1) as bilder
            on( gallery.id=bilder.gallery_id )
        Versuch es mal so in die Richtung! Ist aber definitiv nicht die beste Lösung! Gut wäre beispielsweise, in der gallery-Tabelle zu setzen, welches Bild das Vorschaubild sein soll.

        Kommentar


        • #5
          Hallo nochmal

          Ich habe gerade erst gesehen, dass das Board meinen Code abgeschnitten hat - hier nochmals die gesamte SQLAbfrage:

          Code:
          SELECT my_galery.*, my_galery_pics.galerybildbaseid, my_galery_pics.galerybildpfadvorschau
          FROM my_galery INNER JOIN my_galery_pics ON my_galery.galeryid = my_galery_pics.galeryid;
          Ich hab versucht, die von dir vorgeschlagene Lösung anzupassen - leider meldet mir phpmyadmin einen Fehler zurück - evtl hab ich auch was falsch verstanden.

          Evtl hast du nochmals 30 sec. um die nun komplett gepostete SQLAnweisung auf deinen Vorschlag umzubauen ?

          CU
          Axel

          Kommentar


          • #6
            Evtl hast du nochmals 30 sec. um die nun komplett gepostete SQLAnweisung auf deinen Vorschlag umzubauen ?
            vielleicht hast du ja 30 Sekunden und versuchst zu verstehen, was mein Pseudocode denn macht?

            Kommentar


            • #7
              Jepp

              hab ich versucht und glaub ich auch verstanden.

              Im es wird innerhalb der Abfrage die BILD-Tabelle abgefragt und die Ausgabe mit LIMIT (spalte1) auf 1 Datensatz limitiert - und ganz unten steht die verknüpfung zwischen den Tabellen.

              Hatte das auch so angepasst, wie ich das für richtig befunden habe - dennoch Fehlerausgabe.

              Code:
              SELECT my_galery .  * , my_galery_pics.galerybildpfad
              FROM my_galery( 
              SELECT galyerybildid, galerybildpfad
              FROM my_galery_pics
              LIMIT 0 , 1 ) AS my_galery_pics ON ( my_galery.galeryid = my_galery_pics.galeryid )
              Ich habe alle Feldnamen mehrfach verglichen und nochmals alles durchkontrolliert ich finde den Fehler nicht.

              CU
              Axel

              Kommentar


              • #8
                Und sollen wir jetzt raten, wie die Fehlermeldung lautet? Ich tippe auf: Spalte my_galery_pics.galeryid nicht bekannt!

                Kommentar


                • #9
                  Hallo nochmal

                  ich muss kapitulieren. Entweder Brett vom Kopf oder irgendwo ist da ein Fehler...

                  Die beiden Abfrage einzeln probiert - funktionieren.
                  Ich hab jetzt nochmals alle Feldnamen geprüft - nix

                  Keine Ahnung warum das nicht will....

                  CU
                  Axel

                  Danke trotzdem für deine Hilfe !

                  Kommentar


                  • #10
                    Und sollen wir jetzt raten, wie die Fehlermeldung lautet?

                    Kommentar


                    • #11
                      Hallo

                      Habe ich das verlangt ? - Nein !

                      Ich habe lediglich geschrieben, dass ich beinahe 2 Stunden probiert, gelesen, getestet und darüber nachgedacht habe. - Eine Lösung konnte ich dennoch nicht finden.

                      Um das Problem zu umgehen und nicht noch mehr Zeit zu verlieren, habe ich das Datenbank-Design geändert (geht ja nicht immer) und schreibe nun immer FIX ein Vorschaubild fest in die Tabelle.

                      Schade, dass es nicht über die Abfrage ging - aber damit kann ich leben.

                      CU
                      Axel

                      Kommentar


                      • #12
                        Es hat nie jemand behauptet, das es mit der Abfrage nicht geht! Du hast es lediglich nicht hinbekommen! Wenn du die Güte gehabt hättest, deine Fehlermeldung mit uns zu teilen, hätte man dir auch helfen können!

                        Kommentar

                        Lädt...
                        X