foreach und seiten zahlen ?

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

  • foreach und seiten zahlen ?

    Hallo,
    ich hänge mal wieder derbe in den seilen
    Also es geht um folgendes:

    In einer Datei werden folgende einträge so gespeichert:

    name|datum|Hits|Views|Count|Kommentar|

    Diese datei lese ich dann mit file aus und kann dann diese mit $sort nach hits oder views sortiert werden.
    mein Problem was ich jetzt dabei habe ist das ich keine Seitenzahlen in der foreach schleife eingebaut bekommen.
    Kann mir vielleicht jemand helfen wie ich das schaffe ?

    Ich verzweifle schon langsam daran
    PHP-Code:
    <?php 
    $file 
    file('einträge.php'); // datei die ausgelesen wird
    $total_lines count($file); // anzahl der Einträge
    if(isset($_GET['sort'])) {$sort $_GET['sort'];}
    else{
    $sort 'view';}                              // sortier modus  *hits* oder *view*

    foreach($file as $line) {
            list(
    $name,$datum,$hits,$view,$count,$kommentar)=explode('|',$line);
            if(
    $sort == 'hits'){$liste[] = array($hits,$name,$datum,$view,$count,$kommentar);}
            if(
    $sort == 'view'){$liste[] = array($view,$hits,$name,$datum,$count,$kommentar);}
        } 
    arsort($liste); // liste Sortieren
    $i=0;
    foreach(
    $liste as $line_ii)
            {
            
    $i++;
            if(
    $i <= $total_lines) {
                if(
    $sort == 'hits') {
                        
    $name_ii      $line_ii[1];
                        
    $datum_ii     $line_ii[2];
                        
    $hits_ii      $line_ii[0];
                        
    $view_ii      $line_ii[3];
                        
    $count_ii     $line_ii[4];
                        
    $kommentar_ii $line_ii[5];
                    }  
    // if hits
                
    if($sort == 'view') {
                        
    $name_ii      $line_ii[2];
                        
    $datum_ii     $line_ii[3];
                        
    $hits_ii      $line_ii[1];
                        
    $view_ii      $line_ii[0];
                        
    $count_ii     $line_ii[4];
                        
    $kommentar_ii $line_ii[5];
                    }  
    // if view
            
    echo "Name: $name_ii<br>Datum: $datum_ii<br>Hits: $hits_ii<br>Views: $view_ii<br>Count: $count_ii<br>Kommentar: $kommentar_ii<br><hr>";
                } 
    // if $total
        
    // foreach
    Gruss
    Runner

  • #2
    weiss den echt keiner ne lösung

    Kommentar


    • #3
      PHP-Code:
      foreach($liste as $line_ii
      das wird so nich gehen. du musst wenn du seitenzahlen hast, ja immer nen bestimmten teil deines array ausgeben (0-9, 10 - 19, ... zum beispiel)


      hast du mal nach blättern und seiten gesucht?
      Zuletzt geändert von mrhappiness; 20.05.2003, 22:24.
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        ja habe schon, aber ich habe nichts für mich passendes gefunden

        Ich brauche das foreach ja wegen der sortierung .

        Ich kann ja zb nicht einfach in der foreach schleife eine for schleife einbauen, das geht ja nicht...

        mhhh... könnte ich den nach der zweiten foreach schleife mit einer for schleife arbeiten ?

        Gruss
        Runner

        Kommentar


        • #5
          das foreach das ich zitiert hab is das nach der sortierung

          nehm da mal ne normale for-schleife, da kannst du anfangs und endwert mitgeben
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            aslo ich habe jetzt nach dem ersten foreach mal mit einer normelen ´for schleife gearbeited...
            das klapt aber nicht so ganz, da die einträge jetzt untereinander vertauscht sind

            PHP-Code:
            for ($i=$entriesPerPage*$seite;$i<$entriesPerPage*$seite+$entriesPerPage;$i++){
            if (
            $i <= $total_lines-1){
            if(
            $sort == 'hits') {
                                
            $name_ii      $liste[1];
                                
            $datum_ii     $liste[2];
                                
            $hits_ii      $liste[0];
                                
            $view_ii      $liste[3];
                                
            $count_ii     $liste[4];
                                
            $kommentar_ii $liste[5];
                            }  
            // if hits
                        
            if($sort == 'view') {
                                
            $name_ii      $liste[2];
                                
            $datum_ii     $liste[3];
                                
            $hits_ii      $liste[1];
                                
            $view_ii      $liste[0];
                                
            $count_ii     $liste[4];
                                
            $kommentar_ii $liste[5];
                            }  
            // if view
            // ausgabe
             
            }

            Zuletzt geändert von runner; 20.05.2003, 22:58.

            Kommentar


            • #7
              PHP-Code:
              for ($i=$entriesPerPage*$seite;$i<$entriesPerPage*$seite+$entriesPerPage;$i++)
              {
                
              $line_ii=$liste[$i];
                
              //weiter im txt

              probier's mal so
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                ne so geht es auch nicht
                so schmeist er mir auch alles durcheinander

                Kommentar


                • #9
                  oh mann.... jetzt habe ich die ganze nacht damit verbracht das problem zu lösen,
                  aber ich habe leider keinen erfolg gehabt

                  Also nochmal ganz von vorne:
                  Ich sortiere mit der ersten foreach schleife meine Daten sätzte:
                  PHP-Code:
                  $file file('einträge.php'); // datei die ausgelesen wird
                  $total_lines count($file); // anzahl der Einträge
                  if(isset($_GET['sort'])) {$sort $_GET['sort'];}
                  else{
                  $sort 'view';}                  // sortier modus  *hits* oder *view*

                  foreach($file as $line) {
                          list(
                  $name,$datum,$hits,$view,$count,$kommentar)=explode('|',$line);
                          if(
                  $sort == 'hits'){$liste[] = array($hits,$name,$datum,$view,$count,$kommentar);}
                          if(
                  $sort == 'view'){$liste[] = array($view,$hits,$name,$datum,$count,$kommentar);}
                      } 
                  arsort($liste); // liste Sortieren 
                  das mehrdimensionale array was ich dann erhalte ist korrekt nach "view" sortiert :
                  Code:
                  Array
                  (
                      [5] => Array
                          (
                              [0] => 9632
                              [1] => 544
                              [2] => Eintrag Nr.6
                              [3] => 20.05.2003
                              [4] => 66
                              [5] => Das ist der Text zu Eintrag 6
                          )
                  
                      [2] => Array
                          (
                              [0] => 8975
                              [1] => 856
                              [2] => Eintrag Nr.3
                              [3] => 20.05.2003
                              [4] => 87
                              [5] => Das ist der Text zu Eintrag 3
                          )
                  
                      [4] => Array
                          (
                              [0] => 1478
                              [1] => 145
                              [2] => Eintrag Nr.5
                              [3] => 20.05.2003
                              [4] => 89
                              [5] => Das ist der Text zu Eintrag 5
                          )
                  
                      [7] => Array
                          (
                              [0] => 1124
                              [1] => 875
                              [2] => Eintrag Nr.8
                              [3] => 20.05.2003
                              [4] => 85
                              [5] => Das ist der Text zu Eintrag 8
                          )
                  
                      [1] => Array
                          (
                              [0] => 1054
                              [1] => 254
                              [2] => Eintrag Nr.2
                              [3] => 20.05.2003
                              [4] => 32
                              [5] => Das ist der Text zu Eintrag 2
                          )
                  
                      [0] => Array
                          (
                              [0] => 985
                              [1] => 458
                              [2] => Eintrag Nr.1
                              [3] => 20.05.2003
                              [4] => 12
                              [5] => Das ist der Text zu Eintrag 1
                          )
                  
                      [3] => Array
                          (
                              [0] => 788
                              [1] => 785
                              [2] => Eintrag Nr.4
                              [3] => 20.05.2003
                              [4] => 74
                              [5] => Das ist der Text zu Eintrag 4
                          )
                  
                      [6] => Array
                          (
                              [0] => 741
                              [1] => 1000
                              [2] => Eintrag Nr.7
                              [3] => 20.05.2003
                              [4] => 77
                              [5] => Das ist der Text zu Eintrag 7
                          )
                  
                      [8] => Array
                          (
                              [0] => 48
                              [1] => 897
                              [2] => Eintrag Nr.9
                              [3] => 20.05.2003
                              [4] => 99
                              [5] => Das ist der Text zu Eintrag 9
                          )
                  
                  )
                  und nun versuche ich das ganze mit einer for schleife in X Daten pro seite auszugeben,
                  Aber hierbei wird die sortierung dann völlig durcheinander geschmissen
                  PHP-Code:
                  $entriesPerPage '5'// zahlen pro seite
                  if($seite ''){$seite '0';}
                  for(
                  $i=$entriesPerPage*$seite;$i<$entriesPerPage*$seite+$entriesPerPage;$i++){
                  if(
                  $i <= $total_lines) {
                      if(
                  $sort == 'view') {
                                      
                  $name_ii      $liste[2];
                                      
                  $datum_ii     $liste[3];
                                      
                  $hits_ii      $liste[1];
                                      
                  $view_ii      $liste[0];
                                      
                  $count_ii     $liste[4];
                                      
                  $kommentar_ii $liste[5];
                              } 
                  // if view
                          
                  if($sort == 'hits') {
                                      
                  $name_ii      $liste[1];
                                      
                  $datum_ii     $liste[2];
                                      
                  $hits_ii      $liste[0];
                                      
                  $view_ii      $liste[3];
                                      
                  $count_ii     $liste[4];
                                      
                  $kommentar_ii $liste[5];
                                  }  
                  // if hits
                  echo "Name: $name_ii[$i]<br>Datum: $datum_ii[$i]<br>Hits: $hits_ii[$i]<br>Views: $view_ii[$i]<br>Count: $count_ii[$i]<br>Kommentar: $kommentar_ii[$i]<br><hr>";
                      } 
                  // if total
                  // for 
                  Ich hoffe das mir da einer weiter helfen kann....
                  Vielleicht habe ich ja auch nur Tomaten vor den augen

                  Gruss
                  Runner

                  Kommentar


                  • #10
                    ich habe es immer noch nicht geschaft ....
                    Please Help

                    Kommentar


                    • #11
                      weiss den keiner wie ich das Problem lösen könnte

                      Kommentar

                      Lädt...
                      X