Navigation abbilden

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Navigation abbilden

    Hallo zusammen

    Ich habe eine MYSQL Tabelle bei welcher neben dem namen und url auch eine Laufnummer und eine Position vorhanden ist.

    Das heisst alle Navigationspunkte auf der ersten Stufe besitzen die Position 0 und alle anderen die jeweilige Laufnummer der Oberstufen als Position.

    Bis heute habe ich die Navigation abbgebildet indem ich pro Stufe eine Datenbankabfrage erstellt habe.

    Das hat 2 Nachteile: 1. zu viele Abfragen, 2. Ist es nicht unentlich, so dass bei jeder neuen Stufe wieder eine Abfrage erstellt werden muss.

    Nun will ich das ganze so klein und unabhängig machen wie möglich, nur fehlt mir der Ansatz dazu.

    Wer kann mir einen Tip geben ob ich es mit Array oder Join Abfragen probieren sol

  • #2
    Zu viele Abfragen? wieviele Navipunkte hast du?

    Je Navipunkt müsste sich mit deiner Struktur (sofern ich sie verstanden habe) genau eine Abfrage ergeben. Die Frage, wie bestimmst du die Positionsnummer? Ich nehme mal ein bereinigtes und kontrolliertes $_POST['navi_posnummer'] an.

    PHP-Code:
    SELECT FROM `naviWHERE `position` = \'' $_POST['navi_posnummer'] . '\'; 
    Liefert ein Array mit allen Navi-Punkten an genau dieser Position. Und unendlich wäre es auch.

    PS Backslashes gehen hier nicht....
    Zuletzt geändert von SysOp; 25.09.2015, 16:28.

    Kommentar


    • #3
      Nein nicht mit POST.

      Abfrage zeige alle mit position 0
      {
      Abfrage zeige alle mit Position = Laufnummer der ersten Abfrage
      {
      Abfrage zeige alle mit Position = Laufnummer der zweiten Abfrage
      {
      usw.
      }
      }
      }

      Ergibt eine Baumstruktur

      Kommentar


      • #4
        Hallo,

        ich persönlich empfehle gerne dieses hier ( Nested Sets – Verschachtelte Bäume mit MySQL - Arne Klempert ). Ist zwar etwas komplizierter jedoch wesentlich performanter da die Struktur nicht rekursiv ausgelesen werden muss.
        maralex.one Webentwicklung
        ICQ:
        661-692-761 | mail: info[aet]maralex.one

        Kommentar


        • #5
          Ob Nested Sets eine gute/die beste Wahl sind, hängt meines Erachtens aber schon etwas von den genauen Anforderungen ab.

          Ein neuerer Thread auf phpforum.de zu grob dem Thema dieses Threads:

          - [MySQL] Mehrere "Kommentarebenen" - PHP Forum: phpforum.de

          Kommentar


          • #6
            Halleluja

            Ich wurde fündig...sprich das wurde ich schon lange auch die Links welche hier gepostet wurde kenne ich, diese habe aber nie zu meinem Ziel geschweige denn zu meiner Befriedigung beigetragen!

            Hier der Link mit welchem ich nun glücklich bin; mein Script sieht mittlerweilen bereits anders erweitert und grösser aus, aber die Basis findet Ihr hier.

            Link zum Baum

            Kommentar


            • #7
              Hallo,

              sehr schön das du dich selber zurecht gefunden hast.
              Danke für den Link, dieser wird bestimmt auch in Zukunft so manchem helfen!

              LG und Gute Nacht
              maralex.one Webentwicklung
              ICQ:
              661-692-761 | mail: info[aet]maralex.one

              Kommentar


              • #8
                Ich wurde fündig...sprich das wurde ich schon lange auch die Links welche hier gepostet wurde kenne ich, …
                Du kanntest den Thread auf phpforum.de? Du wusstest also schon alle denkbaren Ansätze? Dann verstehe ich nicht, wieso du diesen Thread überhaupt erstellt hast?
                I call bullshit. Du in #1:

                nur fehlt mir der Ansatz dazu

                …diese habe aber nie zu meinem Ziel geschweige denn zu meiner Befriedigung beigetragen!
                Wenn der Bauer nicht schwimmen kann, liegt es an der Badehose?

                Hier der Link mit welchem ich nun glücklich bin
                Dann heul hier aber nicht mehr rum wegen zu vieler Abfragen.

                Vielleicht postest du hier in Zukunft einfach nicht mehr.
                Zuletzt geändert von mermshaus; 27.09.2015, 17:28.

                Kommentar


                • #9
                  Hallo,

                  ich denke das Thema hat sich erledigt. Moderator?
                  maralex.one Webentwicklung
                  ICQ:
                  661-692-761 | mail: info[aet]maralex.one

                  Kommentar


                  • #10
                    Kannst meinen Beitrag ja melden, wenn er dir nicht gefällt. Dann kannst du dir das Gespamme sparen.

                    Die verlinkte Lösung nutzt übrigens die veraltete mysql-Extension, beachtet keine Kontextwechsel nach HTML, und MyISAM und charset=latin1 ist auch nicht der Weisheit letzter Schluss.

                    Edit: Und um es noch inhaltlich einzuordnen: Das ist eine Adjazenzliste. Die Dinger sind rein mit MySQL nicht wirklich sinnvoll auslesbar. Das ist richtig. Da braucht es dann zum Beispiel PHP und Rekursion und etliche Queries oder eben eine Query, die alles holt, und dann PHP-Code, der aus den Daten einen Gesamtbaum erstellt. Was da geschickter ist, hängt von der Anwendung ab. Wenn es nur ~100 Menü-Einträge sind, würde ich persönlich durchaus darüber nachdenken, den gesamten Baum zu holen, um Queries zu sparen. Das hängt dann halt daran, was man genau für Anforderungen hat und wo man gegebenenfalls eine konkretere Optimierung benötigt.

                    Eine gute Zwischenlösung zwischen „endloser“ Rekursion und Nested Sets können materialized paths sein (siehe phpforum.de-Thread).
                    Zuletzt geändert von mermshaus; 27.09.2015, 18:34.

                    Kommentar


                    • #11
                      Zitat von mermshaus Beitrag anzeigen
                      Kannst meinen Beitrag ja melden, wenn er dir nicht gefällt. Dann kannst du dir das Gespamme sparen.
                      Sehr schön,

                      jetzt wird mir auch klar warum ich mich hier nie angemeldet habe

                      In diesem Sinne ..

                      maralex.one Webentwicklung
                      ICQ:
                      661-692-761 | mail: info[aet]maralex.one

                      Kommentar


                      • #12
                        OT:

                        Okay, sorry, das mit dem Gespamme nehme ich meinetwegen zurück. Ich hatte das auch vor dem Hintergrund von zwei, drei anderen Beiträgen von dir geschrieben, die ich mitbekommen habe, aber du postest ansonsten schon okay.

                        Ich finde es hier im Thread jedenfalls sehr unangebracht, wenn die Hilfe, die inhaltlich wirklich in Ordnung und zielführend ist, als unbrauchbar bezeichnet wird. Es wurde nach einem Ansatz gefragt, und genau das wurde angemessen und informativ beantwortet.

                        Von uns Helfern kann doch niemand ahnen, dass eigentlich eine kopierfertige Lösung gewünscht ist. Da muss man uns hier nicht dumm kommen, nur weil man als Threadersteller selbst nicht programmieren kann oder will und keine passendere Frage formuliert hat, obwohl man seit 8 Jahren hier angemeldet ist.

                        Ich habe für so was kein Verständnis, weil ich es einfach fies finde.
                        Zuletzt geändert von mermshaus; 28.09.2015, 23:13.

                        Kommentar


                        • #13
                          Zitat von mermshaus Beitrag anzeigen
                          OT:

                          Okay, sorry, das mit dem Gespamme nehme ich meinetwegen zurück. Ich hatte das auch vor dem Hintergrund von zwei, drei anderen Beiträgen von dir geschrieben, die ich mitbekommen habe, aber du postest ansonsten schon okay.

                          Ich finde es hier im Thread jedenfalls sehr unangebracht, wenn die Hilfe, die inhaltlich wirklich in Ordnung und zielführend ist, als unbrauchbar bezeichnet wird. Es wurde nach einem Ansatz gefragt, und genau das wurde angemessen und informativ beantwortet.

                          Von uns Helfern kann doch niemand ahnen, dass eigentlich eine kopierfertige Lösung gewünscht ist. Da muss man uns hier nicht dumm kommen, nur weil man als Threadersteller selbst nicht programmieren kann oder will und keine passendere Frage formuliert hat, obwohl man seit 8 Jahren hier angemeldet ist.

                          Ich habe für so was kein Verständnis, weil ich es einfach fies finde.
                          Alles klar. Kein Stress, ich meine du hast ja auch irgendwie recht
                          Haha jmn

                          Aber jetzt bitte hier closen .. Threader hat ja schon alles ala Copy & Paste
                          maralex.one Webentwicklung
                          ICQ:
                          661-692-761 | mail: info[aet]maralex.one

                          Kommentar


                          • #14
                            Hallo was geht denn hier ab?

                            Ich kann mich nicht mehr halten vor lachen, was für Probleme haben gewisse Menschen auf der Erde!?!

                            Danke h4zebust3r90 nach Deinem zweiten Post hätte diese Diskussion beendet werden müssen.

                            An alle Menschen dieser Erde; Seit im reinen mit Euch und liebt Euch und Eure Mitmenschen! Danke

                            Kommentar


                            • #15
                              Wenn du vorher schon Ansätze recherchiert/gefunden hast, dann sollte es das Mindeste sein, dass du diese auch erwähnst, und erklärst warum dir diese nicht zusagen.

                              Potentielle Helfer noch mal das raussuchen lassen bzw. vielleicht sogar eine längere Antwort schreiben zu lassen, nur damit von dir dann ein „weiß ich/kenn ich schon, gefällt mir nicht“ kommt … das ist einfach ziemlich schlechter Stil.

                              Als halte dich da bitte in Zukunft einfach dran.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X