Array Zeilenweise ausgeben

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Array Zeilenweise ausgeben

    Hallo...

    habe mir ein Klasse Script bei euch hier im Forum genommen und benutze es auch. Hab das Script hier her:
    Forum

    Ich hab mir ein Login-system mit .dat Dateien geschrieben. Jeder User hat seine eigene .dat Datei. Jetzt will Ich diese Dateien für die Mitglieder/Adressliste auslesen und anzeigen lassen. Das klappt auch so weit ganz gut. Mein problem ist nur, das Ich das Script ein wenig verändert habe und die Zeilen ohne Array ausgebe. (Ich lass sie mit echo $zeile1 usw.. in eine Tabelle schreiben. Das problem ist, die Daten (mitgliedsnamen) sind nicht Alphabetisch geordnet!

    Wenn Ich es mit sort($arr1) mache, dann kann Ich zwar nach Namen sortieren lassen, aber dann schreibt er mir alle Namen untereinander, nach den Namen dann alle Adressen untereinander usw... Und selbst wenn Ich das Problem lösen könnte, wie bekomme Ich dann die Ausgabe wieder in die Tabelle??

    MFG J@M

  • #2
    Häh?

    OffTopic:
    Hoffentlich kommt keiner an die dat-dateien dran.

    Comment


    • #3
      Hab das Verzeichnis mit .htaccess geschützt

      Aber vielen Dank für den Tip!

      Comment


      • #4
        OffTopic:
        Der Hinweis bringt dich jetzt nicht wirklich weiter. Aber gut, DU bist es, der was will...

        Comment


        • #5
          keiner von den profies da der helfen kann???

          Comment


          • #6
            Mein "Häh?" sollte ausdrücken, dass es mir unmöglich war, deine Absichten zu verstehen. Vielleicht versuchst du daran mal was zu ändern anstatt mit solchen DUMMEN Fragen hinterher zu drängeln!

            Comment


            • #7
              ups... wird das thread bei jeder antwort nach oben geholt?? das wusst ich nicht und war nicht meine absicht!!

              Mein anliegen bezieht sich auf den link den ich oben geposted habe. Ich benutze das script... allerdings habe ich das array aus dem script rausgenommen, da ich mehrere zeilen in der textdatei habe. in dem script von oben bezieht es sich auf eine zeile lediglich. $zeile1.
              Ich habe aber mehrere zeile ... sagen wir mal 6 ... also array weg... mehrere textdateien die ich gleichzeitig auslese (als adressliste) und dann zeilenweise wieder ausgebe mit echo $zeile1 echo$zeile2 usw...

              ein file sieht ungefähr so aus:

              Username
              Nachname, Vorname
              Strasse nr.
              22222 Hamburg
              Telefon
              usw...

              das sind ja nun einzelne zeilen die ich auslese und eigentlich nur mit den echo befehlen ausgebe ähnlich wie in dem obigen script aus dem forum hier...
              ich habe ne tabelle wo ich diese daten ausgebe.

              nun möchte ich allerdings das diese daten alphabetisch angeordnet sind! also nach der zweiten zeile. (nachname, name)
              und danach in der tabelle die daten wie adresse telefon usw.. erscheinen.

              wenn ich das im array mache dann listet er mir erst die namen alle alphabetisch auf, dann die adressen alle alphabetisch auf usw... er soll aber in einer tabelle nachname,name strasse ort usw.. auflisten!!??!!

              wie kann ich das mit dem array anstellen??!!??

              hier nochmal das script was ich aus diesem forum habe:
              http://www.php-resource.de/forum/sho...n+einem+ordner

              Comment


              • #8
                Also ich würde dir zum Einlesen file() empfehlen, dann haste alle Einträge bereits in einem Array. Damit das Sortieren besser geht würde ich aber noch eine zusätzliche Dimension in das Array einbauen und danach mit usort() und einer Vergleichsfkt das neue Array sortieren.
                PHP Code:
                function cmp($a,$b){
                   
                //es soll nach dem 2. Eintrag sortiert werden Nachname/Vorname
                    
                return strcmp($a[2], $b[2]);
                }

                $rawData file('deine.dat');
                $data = array();
                //sagen wir du hast 5 Zeilen pro Eintrag
                $i 0;
                while(
                $i count($rawData)){
                    
                $data[] = array_slice($rawData,$i,4);    
                    
                $i += 5;
                }

                usort($data,"cmp");
                //Ergibt nun
                var_dump($data);
                //in etwa das was du erwartest ? 
                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Comment


                • #9
                  Hi Tobi,

                  Das Problem dabei ist, das es sich um ca. 60 .dat Dateien handelt die er öffnen soll. Jeder User hat eine eigene .dat Datei. (Z.B. Hansi.dat)

                  Darin steht dann Z.B.:

                  Passwort
                  Username
                  Nachname, Vorname
                  Strasse Nr.
                  PLZ / Ort
                  Telefon usw...

                  Ich bekomm es zwar schon hin das er die Dateien alle öffnet und die Daten in eine Tabelle ausgiebt, jedoch nicht das er die Namen (Nachname, Vorname) Alphabetisch sortiert!

                  Das benutze Ich zur Zeit:

                  PHP Code:
                  <?php

                  $ordner 
                  "./login/users/";
                             if (
                  $dh opendir($ordner)) {
                                      while ((
                  $file readdir($dh)) !== false) {
                                          if (
                  $file != "." AND $file != ".."){
                                              
                  $wo fopen($ordner $file "r");
                                              
                  $zeile1 fgets($wo100);
                                              
                  $zeile2 fgets($wo100);
                                              
                  $zeile3 fgets($wo100);
                                              
                  $zeile4 fgets($wo100);
                                              
                  $zeile5 fgets($wo100);
                                              
                  $zeile6 fgets($wo100);
                                              
                  $zeile7 fgets($wo100);
                                              
                  $zeile8 fgets($wo100);
                                              
                  $zeile9 fgets($wo100);
                                              
                  $zeile10 fgets($wo100);
                                              
                  $zeile11 fgets($wo100);}?>
                                  <td class="v1"><font size="1"><?php echo $zeile6 ?></font></td>
                                  <td class="v1"><font size="1"><?php echo $zeile7 ?></font></td>
                                  <td class="v1"><font size="1"><?php echo $zeile8 ?></font></td>
                                  <td class="v1"><font size="1"><?php echo $zeile9 ?></font></td>
                                  <td class="v1"><font size="1"><?php echo $zeile10 ?>
                  </font></td><td class="v1"><div align="center"><font size="1">
                  <?php echo "<a href='mailto:$zeile5'><img src='login/bilder/email.gif' width='15' height='11' alt='' title='$zeile5' />
                  </a>" 
                  ?></font></div></td>
                  <td class="v1"><div align="center"><font size="1"><?php echo $zeile11 ?></font></div></td></tr > <?php
                                   
                  }
                                 
                  closedir($dh);
                             }
                             
                  ?>
                  Gruß Jan
                  Last edited by J@M; 18-10-2006, 22:20.

                  Comment


                  • #10
                    falsche reihenfolge:
                    1. einlesen
                    2. sortieren
                    3. ausgeben

                    wo kommen die dateien in der form eigentlich her?

                    Comment


                    • #11
                      Naja, einlesen und ausgeben stimmen schon mal in der Reihenfolge, da Ich sie ja nicht sortiere.

                      Es sind ca 60 .dat Dateien die schon vorhanden sind und die Ich aus einem Ordner auslese. Im Moment lese Ich die Dateien aus und gebe Sie Zeile für Zeile in einer Tabelle aus. $zeile6 ist z.B.: Nachname, Vorname. Und nach dem würde Ich die Daten gerne in der Adressenliste sortieren...

                      MFG Jan

                      Comment


                      • #12
                        Naja, einlesen und ausgeben stimmen schon mal in der Reihenfolge
                        nein, du gibst z.t. aus, bevor du zu ende eingelesen hast.

                        Comment


                        • #13
                          Stimmt.... das werd Ich gleich mal beheben... Danke für den Tip!

                          Gruß Jan

                          Comment


                          • #14
                            Sorry das Ich nochmal nerve...

                            Also... Zeile 1 = Passwort
                            Zeile 2 = Vorname
                            Zeile 3 = Nachname

                            Jetzt sortiert er aber nach Vorname (Zeile2) und nicht nach Nachname (Zeile3).

                            Wie bekomm Ich es jetzt hin das er mir das nach Nachname sortiert??


                            PHP Code:
                            <?php
                            $zeile1 
                            fgets($wo100);
                                                        
                            $zeile2 fgets($wo100);
                                                        
                            $zeile3 fgets($wo100); 
                            ?>
                            Hoffe Ihr könnt mir weiterhelfen... Danke schon mal im voraus.
                            Gruß Jan

                            Comment


                            • #15
                              http://de2.php.net/manual/de/functio...-multisort.php
                              und für die schwere fälle
                              http://de2.php.net/manual/de/function.usort.php
                              Slava
                              bituniverse.com

                              Comment

                              Working...
                              X