Sortierreihenfolge festlegen

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

  • Sortierreihenfolge festlegen

    Hi Leute ich habe von einem Freund folgenden Quellcode zum erstellen einer Auswahlbox bekommen (es wird ein Verzeichniss durchsucht und alle Verzeichniss aufgelistet die nicht "Name des Verzeichnisses"+"thumbs" am Ende stehen haben. Leider sortiert das Scrip nicht Alphabetisch. Ich erreiche leider seit mehreren Tagen meinen Freund nicht und brauche dieses Script aber recht schnell im Einsatz. Kann mir hier vieleicht jemand auf die schnelle sagen wie ich das Script veränden muss das es Alphabetisch sortiert (oder besser Alphanumerisch)?


    PHP-Code:
    echo "<form action=\"index.php?op=choose\" method=\"post\">"
    echo 
    "<select name=\"verzeichnis\">"
    while(
    $eintrag){ 
       if(
    is_dir($eintrag)&& $eintrag !== "." 
          
    && $eintrag !== ".." 
          
    && eregi("thumbs"$eintrag)) 
          echo 
    "<option value=\"$eintrag\">" 
                
    .substr($eintrag,0,-6); 
       
    $eintrag=readdir($dirStructur); 

    closedir($dirStructur); 
    echo 
    "</select>"
    echo 
    "<input type=\"Submit\" value=\"Gallerie auswählen\">"
    echo 
    "</form>"

  • #2
    mach 2 schleifen ...
    - in der ersten schleife trägst du alle dateien in ein array ein => $datei[] = $file;
    - danach sortieren (sort, natsort, natcasesort, etc => manual)
    - danach 2. schleife mit der ausgabe
    Kissolino.com

    Kommentar


    • #3
      Okay, danke für den Ansatz, ich probier jetzt mal das ganze umzusetzen. Ich meld mich wenn ich was raushabe! *gg* mal sehen was das wird.

      Kommentar


      • #4
        PHP-Code:
        // Aus: 


        echo "<option value=\"$eintrag\">".substr($eintrag,0,-6); 

        // machste

        $dir_array[] = $eintrag;

        //nach der Schleife machste

        sort($dir_array);

        //und dann

        Foreach($dir_array as $value)
        {
            echo(
        '<option value="'.$eintrag.'">'.substr($eintrag,0,-6).'</option>';

        EDIT:

        OffTopic:
        LoL... zu spät...


        [font=verdana] '][' .... düdeldüdel dü

        Gruss Socket
        -----
        Nein, ich programmiere kein Clan-Script für Dich, nein, auch nicht wenn Deine Schwester gut aussieht!
        [color=darkblue]
        Socket Funktionen[/color]
        [/font]

        Kommentar


        • #5
          Ähm bei dieser Lösung kriege ich nur ein Parse Error!
          PHP-Code:
          echo "<form action=\"index.php?op=choose\" method=\"post\">"
          echo 
          "<select name=\"verzeichnis\">"
          while(
          $eintrag){ 
             if(
          is_dir($eintrag)&& $eintrag !== "." 
                
          && $eintrag !== ".." 
                
          && eregi("thumbs"$eintrag)) 
                
          $dir_array[] = $eintrag
             
          $eintrag=readdir($dirStructur); 

          sort($dir_array);
          Foreach(
          $dir_array as $value)
          {
              echo(
          '<option value="'.$eintrag.'">'.substr($eintrag,0,-6).'</option>';
          }
          closedir($dirStructur); 
          echo 
          "</select>"
          echo 
          "<input type=\"Submit\" value=\"Gallerie auswählen\">"
          echo 
          "</form>"
          So sollte der Code doch nach deiner Variante aussehen oder? Ich versuchs derweil mal weiter. Trotzdem danke!

          Kommentar


          • #6
            Also ich habe es jetzt nochmal wie untenstehend probiert, allerdings tritt nun ein lustiges Phänomen auf. Die sortierreihenfolge stimmt "halbwegs" allerdings wird jedes Verzeichniss X mal aufgelistet. Wenn ihr genau wissen wollt schaut einfach hier

            PHP-Code:
            echo "<form action=\"index.php?op=choose\" method=\"post\">"
            echo 
            "<select name=\"verzeichnis\">"
            while(
            $eintrag){ 
               if(
            is_dir($eintrag)&& $eintrag !== "." 
                  
            && $eintrag !== ".." 
                  
            && eregi("thumbs"$eintrag)) 
                  
            $dir_array[] = $eintrag
                  
            sort($dir_array);
            Foreach(
            $dir_array as $value)
            {
                echo
            '<option value="'.$eintrag.'">'.substr($eintrag,0,-6).'</option>';
            }
               
            $eintrag=readdir($dirStructur); 

            closedir($dirStructur); 
            echo 
            "</select>"
            echo 
            "<input type=\"Submit\" value=\"Gallerie auswählen\">"
            echo 
            "</form>"

            Kommentar


            • #7
              vielleicht nimmst du mal dein readdir() aus der while-schleife raus
              Kissolino.com

              Kommentar


              • #8
                uupps danke . Wie gesagt in PHP bin ich nicht wirklich fit!

                Kommentar


                • #9
                  Grrr *grummel* irgendwie funzt heute gar nix, entweder ich steh heute auf dem schlauch oder irgendjemand hat was gegen mich (ich vermute beides). Wahrscheinlich habe ich zuviele blöde fragen gestellt und werde jetzt gerade heute deswegen bestraft. Ich hab jetzt alles wieder auf Anfang zurück gebaut. Ich krieg es jedenfalls mit dem Ansatz nicht hin. Na ja vieleicht fällt mir selbst noch was ein.

                  Kommentar


                  • #10
                    sollte das nicht:
                    PHP-Code:
                    while($eintrag=readdir($dirStructur))
                    {
                    ...

                    heissen?
                    Kissolino.com

                    Kommentar


                    • #11
                      Funzt auch nicht! Er wiederholt das Doppeleintragen immernoch, übrigens hat er immer noch nicht sortiert, habe ich gerade festgestellt! Er hällt die selbe Sortierreihenfolge ein wie vorher. *grummel*

                      Kommentar


                      • #12
                        So jetzt funzt das Script inkl. der Auswahlbox endlich wie es soll. Hat lange gedauert, aber was lange wärt wird endlich gut. (Ob das auch bei M$ zutrifft ). Das ist der Code für die dämliche Auswahlbox.

                        PHP-Code:
                        $dirStructur opendir($docRoot); 
                         

                        echo 
                        "<form action=\"index.php?op=choose\" method=\"post\">"
                        echo 
                        "<select name=\"verzeichnis\">"

                        //////Anfang der Select-Box 
                        $i 0;

                        /* Array mit Verzeichnissen einlesen */
                        while ( $eintrag readdir $dirStructur ) )

                            
                        $dirs[$i] = $eintrag;
                            
                        $i++;
                        }

                        /* Array sortieren */
                        sort($dirs);

                        /* Array durchlaufen */
                        foreach ($dirs as $eintrag)
                        {
                        if ( 
                        is_dir($eintrag )
                               && 
                        $eintrag != "." 
                              
                        && $eintrag != ".." 
                              
                        && eregi("thumbs"$eintrag)
                              ) 
                              echo 
                        "<option value=\"$eintrag\">".substr($eintrag0, -6); 
                         }

                        closedir($dirStructur); 

                        echo 
                        "</select>"
                        echo 
                        "<input type=\"Submit\" value=\"Gallerie auswählen\">"
                        echo 
                        "</form>";

                        //////Ende der Select-Box 

                        Kommentar

                        Lädt...
                        X