Menüs, Submenüs, Subsubmenüs...

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

  • Menüs, Submenüs, Subsubmenüs...

    Hallo.
    Ich arbeite gerade an einer Homepage, welche mit einem Kateoriesystem funktioniert.

    Ich möchte jetzt, wenn eine bestimmte Kategorie gegeben ist, alle Elternkategorien, Schwester- und Kindkategorien als Menüs haben. Schwer zu erklären, ich häng mal einen Screenshot an...

    Also Es sollen alle übergeordneten Kategorien angezeigt werden, und alle Untergeordneten, wobei man bei den Untergeordneten Kategorien nur die nächste Ebene sieht, also alle, deren Vater (wenn man es so ausdrückt) die Kategorie u2 ist.

    Nach oben hin sollen aber alle zu sehen, die der aktuellen Kategorie übergeordnet sind.

    Ich habe zwei Arrays, eines enthält alle Kategorien der nächsten Ebene unter der aktuellen und das andere alle übergeordneten Kategorien.
    Bei allen ist als Element die Tiefe der Kategorie angegeben.

    Ich komm jetzt nicht weiter, wie ich das ganze so als Menü auflisten kann, also wie ich die Schleifen gestalten muss.

    die arrays sehen so aus:
    $blabla[$i]['catName']
    $blabla[$i]['depth'] usw.
    $i ist einfach nur ein Zähler welcher von 0 bis Kategorie anzahl geht.

    Wär nett wenn ihr mir einen Denkanstoss geben könntet, wie man zum Beispiel nach der Tiefe gruppiert oder so...

    MfG Oli
    Angehängte Dateien

  • #2
    kannst du nciht einfach nach depth sortieren?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hm ja, kann ich ja machen, blos wie kann ich innerhalb der Schleife bestimmen, dass jetzt ne neue Zeile anfängt...

      Kommentar


      • #4
        wie meinst du das?

        zum sortieren von mehrdimensionalen arrays gibts auch codeschnipsel, wenn du das meinst.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          ja... ich bin nicht so gut in PHP...

          Mal angenommen ich hab das ganze nach depth sortiert. Was dann?

          Wie muss die Schleife aussehen?
          Ich hoffe du meinst das so:

          $bla[$i]['depth'] 1
          $bla[$i]['depth'] 1
          $bla[$i]['depth'] 2
          $bla[$i]['depth'] 2
          $bla[$i]['depth'] 3
          $bla[$i]['depth'] 3

          Wenn ich das habe, so schön sortiert, wie muss die Schleife aussehen damit ich alle mit depth = 1 in eine Zeile, depth = 2 in die nächste usw. machen kann?

          Sorry, ich hab da im Moment ein blackout, geht sicher ganz einfach...

          Kommentar


          • #6
            ausnahmsweise gibts mal code von mir.
            PHP-Code:
            <?php

                $bla
            [0]['depth'] = 1
                $bla
            [1]['depth'] = 1
                $bla
            [2]['depth'] = 2
                $bla
            [3]['depth'] = 2
                $bla
            [4]['depth'] = 3
                $bla
            [5]['depth'] = 3

                $dummy 
            = -1;
                foreach(
            $bla as $k => $v)
                {
                    if (
            $k!=$dummy)
                    {
                        echo 
            '<hr>';
                        
            $dummy $k;
                    }
                    echo 
            $blah[$k]['depth'];
                }

            ?>
            (so sollte es passen, bzw das prinzip erklären.)

            den rest kannst du selber stricken
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              kurze Zwischenfrage...
              PHP-Code:
              function multisort($array$criterias)
              {
                
              $sort_rule '';
                foreach(
              $criterias as $criteria)
                {
                  foreach(
              $array as $row)
                    
              $sort_array[$criteria['col']][] = $row[$criteria['col']];
                  
              $sort_rule .= '$sort_array['.
                    (
              is_numeric($criteria['col']) ? $criteria['col'] : "'".$criteria['col']."'").
                    
              '], '.$criteria['dir'].',';
                }
                eval(
              "array_multisort($sort_rule".' $array);');
                return 
              $array;

              kann es sein dass da was in der eval() Zeile nicht stimmt...?

              Kommentar


              • #8
                Original geschrieben von OliOli
                kurze Zwischenfrage... kann es sein dass da was in der eval() Zeile nicht stimmt...?
                habs mir nicht genau angesehen. aber schaue mal bei den codeschnipseln vorbei. dort müsste was von happy sein, wenn ich nicht irre. (ohne eval)
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  das ist der von mr.happiness und da war eval() bei

                  Kommentar


                  • #10
                    lol ... dann warte mal, bis er diesen thread hier sieht ... vielleicht kann er dir im moment besser helfen. ich schreib ihm mal ne pm. ;-)
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X