Kategorie History

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

  • Kategorie History

    Ich baue gerade eine Linkliste, die in der obersten Zeile eine History führen soll, die ähnlich aufgebaut ist, wie die hier im Board

    the PHP resource > Scripting > PHP Developer Forum

    Also, wenn ich in eine Unterkategorie klicke, soll in meiner Kopfzeile mein bisher begangener Pfad aufgelistet werden.
    Hierfür suche ich am besten eine Funktion, die ich dann variabel verwenden kann.
    Regards

    Grobi

  • #2
    Funktion?
    mach das doch über ein SQL statement...
    mit joins, etc.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Womit meine Frage eigentlich nicht beantwortet währe, ich bin immernoch genau so schlau wie vorher
      Regards

      Grobi

      Kommentar


      • #4
        @MelloPie: Es ist ja nicht gesagt, ob grobi überhaupt eine Datenbank verwendet.

        @grobi: Wo willst du das denn einsetzen ?
        Wenn du eine Datenbank hast mit Kategorien, die auch eine Parent Kategorie haben können, kannst du das so machen, wie MelloPie es sagte.
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          hmm,

          jupp so ähnlich würd ich es auch machen, bzw. es ergibt sich eigentlich von selbst, denn Du musst ja wissen welches Forum zu welcher Kategorie und die wiederunm zu irgendeiner Page gehört. ==>

          Normalerweise hast du eine Tabelle Kategorien, die haben alle eine ID 1 bis x , dann hast du eine Tabelle Foren, diese haben wiederum eine eigene ID aber auch die ID der Kategorie als Spalte drin, damit indentifizierst du das alles. Das kann man dann wirklich einfach über ein SQL Statement anrufen. Das kannst du so tief stapeln wie du willst, es kommt nur darauf an das in der Tabelle Foren eine kat_ID mit drin steht die die Kategorie eindeutig identifiziert.

          Kommentar


          • #6
            Okay, macht Sinn.
            Ich hab ne SQL Tabelle die nur für die Kategorien da ist.
            Ich probiers mal aus, ob ich das mit nem Join hinbekomme.
            Thanx for Support

            Grobi
            Regards

            Grobi

            Kommentar


            • #7
              Wenn ich Schriftsteller währe, würde ich das jetzt als Schreibblockade deklarieren, aber ich kriegs irgendwie gar nich hin.

              ALSO:
              Ich hab ne SQL Tabelle, die so aussieht:

              ID Name Description Parentcat
              1 Musik Meine Sammlung 0
              2 CDs alle CDs 1
              3 MCs alle MCs 1
              4 LPs alle LPs 1
              5 60Min 60 Minuten MCs 3
              wenn mich nun durch Kategorien klicke, soll irgenwo ausgegeben werden:

              Musik >> MCs >> 60Min
              Regards

              Grobi

              Kommentar


              • #8
                Hallo,


                mal eine Frage: Wie sieht so ein Select aus, das alle Parents erfasst ?

                Mir fällt nur ein normaler Join ein. Da muss man aber die Verschachtelungstiefe wissen/angeben.
                Für eine komplette Verschachtelung müsste man ja rekursiv arbeiten.
                Aber gehts auch anders ? Also mit einem SELECT ?
                [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                © Harald Schmidt

                Kommentar


                • #9
                  gotcha

                  Hab in nem anderen Forum eine wirklich schöne Lösung erhalten, die ich euch natürlich auch nicht vorenthalten will.

                  PHP-Code:
                  function getChainByID($id)
                  {
                    do
                    {
                      
                  $cat mysql_fetch_array(mysql_query("SELECT * FROM tabelle WHERE ID='$id'"));
                      
                  // um einer Endlosschleife vorzubeugen:
                      
                  if (!$cat$id=0;
                      
                  $chain[] = $cat;
                      
                  $id $cat[Parentcat];
                    } while (
                  $id!=0);
                    return 
                  array_reverse($chain);  
                  }

                  function 
                  printChain($chain)
                  {
                    foreach (
                  $chain as $part)
                    {
                      
                  $links[] = "<a href=\"$PHP_SELF?id=$part[ID]\">$part[Name]</a>";
                    }
                    echo 
                  implode(" >> "$links);
                  }

                  function 
                  getChildrenByID($id)
                  {
                      
                  $result mysql_query("SELECT * FROM tabelle WHERE Parentcat='$id'");
                      while (
                  $children[] = mysql_fetch_array($result));
                      return 
                  $children;
                  }

                  function 
                  printChildren($children)
                  {
                      foreach (
                  $children as $child)
                      {
                          echo 
                  "<a href=\"$PHP_SELF?id=$child[ID]\">$child[Name]</a><br>";
                      }
                  }

                  if (!isset(
                  $id)) $id 1;
                  printChain(getChainByID($id));
                  echo 
                  "<br><br>";
                  printChildren(getChildrenByID($id)); 
                  Regards

                  Grobi

                  Kommentar


                  • #10
                    Ja, das ist aber iterativ gelöst.
                    Damit kommst du auf zig Queries..
                    Mich würde mal interessieren, wie das mit einer Query geht (JOIN).

                    @grobi: Das System beim wBB und vB ist genau das gleiche. Halt Iterativ
                    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                    © Harald Schmidt

                    Kommentar


                    • #11
                      Na da bin ich mal gespannt, ob einer der SQL Gurus da was schnelles aus dem Holster zieht.
                      Regards

                      Grobi

                      Kommentar


                      • #12
                        hab net ales gelesen aber du kannst doch ein join über mehrere tabellen machen...
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #13
                          Spam:

                          Grobi haßt Bücher, die verstauben immer so schnell
                          Regards

                          Grobi

                          Kommentar


                          • #14
                            Original geschrieben von MelloPie
                            hab net ales gelesen aber du kannst doch ein join über mehrere tabellen machen...
                            Wie ?
                            Könntest du eine Query vorgeben ?


                            Das Beispiel war folgendes:
                            Tabelle "table1"
                            ID Name Description Parentcat
                            1 Musik Meine Sammlung 0
                            2 CDs alle CDs 1
                            3 MCs alle MCs 1
                            4 LPs alle LPs 1
                            5 60Min 60 Minuten MCs 3
                            wenn mich nun durch Kategorien klicke, soll irgenwo ausgegeben werden:

                            Musik >> MCs >> 60Min
                            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                            © Harald Schmidt

                            Kommentar

                            Lädt...
                            X