ORDER BY andere Baustelle

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

  • ORDER BY andere Baustelle

    Hallo ihr guten Leute!

    Ich habe folgendes Problem;

    Ich habe eine komplett Datenbankgestützes Website, die folgendermassen aufgebaut ist:

    Es gibt eine Tabelle mit der gesammten Struktur...

    Menü1
    - Eintrag1
    - Eintrag2
    -- Subeintrag1
    -- Subeintrag2
    - Eintrag3
    Menü2
    - Eintrag1
    - Eintrag2
    - Eintrag3

    etc...

    Nun gibt es eine zweite Tabelle mit dem ganzen Inhalt.
    Also jeder Menüeintrag enthält die ID des dazugehörigen Contents.

    Nun habe ich eine Volltextsuche, welche die Content-Tabelle durchforstet. Die Ausgabe der gefundenen Seiten möchte ich aber nun nach der Menüstruktur sortiert wiedergeben. Bei der Eingabe des Contents ist es vorgekommen, das der Inhalt von Menü 3 vor Menü 1 eingegeben wurde, die ID-Reihenfolge des Contents entspricht also nicht der Menüstruktur.

    Ich dache da an so eine Art

    SELECT * FROM content_db WHERE content LIKE '%$keyword%' ORDER BY id FROM $menu ASC

    Gibt es vielleicht so eine Möglichkeit?

    Grüße, Andi

  • #2
    mit nem join der zwei Tabellen kannste das machen.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Alles Schön und Gut ... aber warum im PHP-Developer Forum??
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        @ MelloPie:
        Kannst Du da vielleicht ein Beispiel posten, habe noch nie mit Join gearbeitet

        @goth@:
        Sorry, wusste ja nicht, dass es da eine SQL Möglichkeit gibt. Hätte ja auch sein können, dass das nur mit irgendeiner verstrickten PHP Funktion möglich ist.

        Thanx, Andi

        Kommentar


        • #5
          Siehe hier:
          http://www.php-resource.de/forum/sho...threadid=12883
          http://www.php-resource.de/forum/sho...threadid=12607
          http://www.php-resource.de/forum/sho...threadid=12178

          Sollte glaube ich reichen für den Anfang.
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            Also irgendwie steige ich noch nicht so ganz dahinter.
            Ich habe mir jetzt mal angesehen, was da so im MySQL-Handbuch so drinn steht, aber die Erklärungen zu allen Joints verstehe ich irgendwie nicht.

            Vielleicht könnte mir jemand mal zeigen wie mein Beispiel richtig aussehen müsste. Wenn ich dann meine Felder und Tabellen in dem JOIN wiedersehe, komme ich vielleicht besser hinter die Funktionsweise.

            Ich häte gerne:
            SELECT * FROM content_db WHERE content LIKE '%$keyword%' ORDER BY id FROM $menu ASC

            Allso alles Gefundene aus $content_db geordnet nach der ID von $menu

            Vielleicht kennt auch jemand eine Website, die das Joinen besser erklärt als es das MySQL-Handbuch tut.

            Danke & Grüße, Andi

            Kommentar


            • #7
              Original geschrieben von andik2000
              Code:
              SELECT * FROM content_db WHERE content LIKE '%$keyword%' ORDER BY id FROM $menu ASC
              Sind das zwei Tabellen oder ist das eine Tabelle?
              Wäre ganz gut wenn du mal eine Tabellenstruktur aufzeigen würdest. Weil bis jetzt blicke ich noch nicht durch.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #8
                Ei das hab ich doch ganz oben geschildert.

                $content_db = Tabelle, hat die Felder (id, content, opener)
                $menu = Tabelle, hat die Felder (id, name, ebene, parent, url)

                Nun habe ich eine Suchfunktion auf meiner Website.

                $keyword ist mein eingegebener Suchbegriff

                SELECT id FROM $content_db WHERE content LIKE '%$keyword%'

                Das ist ja kein Problem, aber die IDs des Contents sind kreuz und quer vergeben, da mal Seiten rausgelöscht wurden und die Inalte auch nicht Chronologisch zur Menüstruktur eingegeben wurden.
                Deshalb möchte ich die Reihenfolge des Suchergebnisses gerne nach der ID der Menüdatenbank sortieren, weil die Chronologisch angelegt ist.

                Hauptpunkt1 = 1
                - Unterpunkt1 = 2
                - Unterbunkt2 = 3
                Hauptpunkt2 = 4
                - Unterbunkt1 = 5

                usw...

                Gruß, Andi

                Kommentar


                • #9
                  Original geschrieben von andik2000
                  $content_db = Tabelle, hat die Felder (id, content, opener)
                  $menu = Tabelle, hat die Felder (id, name, ebene, parent, url)
                  Wo steht in der Content_db die Zugehörigkeit zum Menue, oder umgekehrt?
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #10
                    Das steht in beiden drinn!

                    In $menu gibt URL die ID des entsprechenden Eintrags in $content_db an.
                    Umgekehrt enthält OPENER in $content_db die ID des verlinkten $menu-Eintrags.

                    Mir wäre es am liebsten, dass ich als result die IDs von der $content_db bekomme, sortiert nach der ID von $menu.

                    Thanx, Andi

                    Kommentar


                    • #11
                      Hallo die Frage ist welches Feld enthält in der ersten Tabelle die id der zweiten und umgekehrt?
                      Dann kann Dir auch jmd hier ein join basteln.
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        Ja drücke ich mich denn so unverständlich aus ??? ;-)

                        Also nochmal zum Mitschreiben:

                        Tabelle mit Menüstruktur = $menu
                        In $menu gibt es die Felder ID, NAME, PARENT, EBENE und URL
                        Das Feld URL gibt dann immer die entsprechende ID der Tabelle $content_db an.

                        Umgekehrt gibt es in der Tabelle $content_db die Felder ID, CONTENT und OPENER.
                        Das Feld OPENER enthält die ID des Eintrags in $menu, die auf diesen Content-Eintrag verweist.

                        Ist doch eigentlich ganz verständlich, oder???

                        Dann sollen nun alle gefundenen Einträge eines Suchbegriffs in $content_db nach der ID von $menu sortiert werden.
                        Wenn ich dass es erst mal verstanden habe, gehts noch einen Schritt weiter, aber erst mal bis da hin, vielleicht schaffe ich dann den Rest selbst.

                        Danke schon mal,
                        Andi

                        Kommentar

                        Lädt...
                        X