cygnus: Kann man arrays blockweise abrufen?

Hallo :)

Ich habe mehrere includierte Dateien mit arrays in einer Tabelle zusammengeführt, alle ~400 arrays pro Includedatei werden durch eine foreach-Schleife in den zugehörigen Spalten angezeigt.

Ich überlege, ob ich nur einen Teil der Daten anzeigen lasse,
etwa die ersten 10 Zeilen der Tabelle bzw. die ersten 10 arrays jeder Includedatei,
und dann per Weiterschaltung den nächsten Zehnerblock anzeige,
bis die Datei mit den jeweiligen Arrays einmal ganz durchgelaufen ist.

Ist das überhaupt möglich?
Wenn ja:
Wie bewerkstelligt man so eine Gruppierung in Zehnerblöcke?
Wie sähe eine Weiterschaltung aus, was nimmt man dafür?

mfg
cygnus

--
Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
  1. Hi,

    Ich überlege, ob ich nur einen Teil der Daten anzeigen lasse,
    etwa die ersten 10 Zeilen der Tabelle bzw. die ersten 10 arrays jeder Includedatei,

    Wie wuerdest du diese identifizieren wollen? Du muesstest die Information vorliegen haben, welches Array aus welcher Include-Datei stammt.

    Wie bewerkstelligt man so eine Gruppierung in Zehnerblöcke?

    Wenn ein Gesamt-Array mit nummerischem Index vorliegt - am einfachsten mit einer for-Schleife mit entsprechend angepasster Laufweite.

    Wie sähe eine Weiterschaltung aus, was nimmt man dafür?

    Parametrisierte URLs, mit denen man den jeweils benoetigten "Bereich" (nach)laden lassen kann - entweder als vollstaendiges neues Dokument, oder auch nur die Daten, die man dann wie AJAX nachlaedt und einbaut.

    "Blaetterfunktion" ist ein gutes Stichwort; wird zwar meist im Zusammenhang mit Datenbank-Ausgaben gebraucht, aber das Prinzip gilt hier natuerlich analog.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hallo :)

      "Blaetterfunktion" ist ein gutes Stichwort; wird zwar meist im Zusammenhang mit Datenbank-Ausgaben gebraucht, aber das Prinzip gilt hier natuerlich analog.

      Danke für das Stichwort.

      mfg
      cygnus

      --
      Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
  2. hi,

    Wie bewerkstelligt man so eine Gruppierung in Zehnerblöcke?
    Wie sähe eine Weiterschaltung aus, was nimmt man dafür?

    Aufm Router cli: term length
    In der Konsole: more

    In CGI's: einen selbstgebauten Pager.

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  3. Hallo :)

    Eigentlich wollte ich mir nur ein Töpfchen Wasser erhitzen, dachte ich,
    nun habe ich viel im PHP-Kochbuch gelesen und festgestellt, dass das so kompliziert ist wie die Gänsebrust auf Rotkohl mit Orangensoße und Klößen mit Butterbröseln ...

    Ich komme nicht weiter, weder mit der seitenweisen Ausgabe einer Datei mit arrays noch alternativ mit der seitenweisen Ausgabe einer Textdatei.

    Das habe ich bisher geschafft:

      
      
      
    // Datei mit arrays einbinden  
       include("inc/formular.inc.php");  
      
    // oder alternativ eine Textdatei  
       $formtxt = file("inc/formular.txt");  
      
      
    // seitenweise Anzeige einer Textdatei oder Datei mit arrays  
    // in diesem Beispiel ist es die Textdatei  
      
    $gesamt = count($formtxt);  
     echo $gesamt ;                     // Ergebnis 25 Einträge  
      
      
    $proseite = 6;  
     echo $proseite;                      // pro Seite 5 Einträge  
      
    $seitenzahl = $gesamt / $proseite;  
     echo $seitenzahl;                   // Ergebnis 4.16666666667 Seiten  
      
      
      
    for($a = 0; $a < $seitenzahl; $a++ )  
      
    //  in der ersten Spalte der nachstehenden Tabelle sollen  
    // eigentlich alle 25 Einträge fortlaufend gezählt werden,  
    // so wie es bisher war, es wird dort aber die  
    // errechnete Seitenzahl angezeigt, in diesem Fall also die  
    // Zahlen von 1 bis 5 in fünf Zeilen  
      
    echo "\n\n<tr><td class='nr'>" , ++$count , "</td>\n";  
    echo "<td class='for'>";  
    echo "</td>\n</tr>";  
    
    

    Statt Seite 1 anzuzeigen mit 5 Zeilen für Einträge,
    erhalte ich also 5 Zeilen, die 5 Seiten entsprechen.
    Dieses Beispiel zeigt leere Echos, aber es ist mir in keinem Versuch gelungen, irgendwelche Einträge aus der Datei ausgeben zu lassen, ausser ich nehme eine foreach-Schleife, dann aber wird die gesamte Anzahl aller Einträge angezeigt.

    Ich habe die forSchleife erweitert, um Links auszugeben, das Muster stammt aus einem Tutorial, das eine Blätterfunktion für die MySQL Datenbank beschreibt. Deshalb ist die Variable $seite undefiniert. Aber keine von meinen definierten Variablen passt an diese Stelle, ich weiss aber auch nicht, wie oder durch was ich $seite definieren soll.
    Die Links werden zwar angezeigt, aber funktionieren natürlich nicht.

      
    {  
       $b = $a + 1;  
      
        if($seite == $b)         // keinen Link ausgeben  
          {  
          echo "  <b>$b</b> ";  
          }  
      
        else                            // Link ausgeben  
          {  
          echo "  <a href=\"?seite=$b\">$b</a> ";  
          }  
       }  
    
    

    Nachdem ich auch hier im Archiv gestöbert hatte, wurde ich dann ganz mutlos, dass ich das jemals hinbekomme ...

    Kann mir jemand weiterhelfen?

    mfg
    cygnus

    --
    Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
    1. echo $begrüßung;

      Ich komme nicht weiter, weder mit der seitenweisen Ausgabe einer Datei mit arrays noch alternativ mit der seitenweisen Ausgabe einer Textdatei.

      Du hast also eine Anzahl von Zeilen, sagen wir mal

      a
       b
       c
       d
       e

      Davon sollen immer zwei pro Seite dargestellt werden.

      a  Seite 1
        b
       ---
        c  Seite 2
        d
       ---
        e  Seite 3

      Es ist immer günstig mit 0 anzufangen, sowohl bei der Seiten- als auch bei der Elementeanzahl, denn dann ist das erste Element einer neuen Seite mit einfacher Rechung zu ermitteln

      0: a  Seite 0
       1: b
       ----
       2: c  Seite 1
       3: d
       ----
       4: e  Seite 2

      2 Elemente pro Seite × Seite 0 = Startelement 0
      2 Elemente pro Seite × Seite 1 = Startelement 2
      2 Elemente pro Seite × Seite 2 = Startelement 4

      Die Anzahl pro Seite weißt du auch, also zählst du vom Startelement um diese Anzahl weiter.

      $elemente = array(...);
      $anzahlProSeite = 2;
      // wenn du nach außen hin von 1 an zählen willst (Seite 1 bis 3 statt 0 bis 2), muss wie nachfolgend 1 abgezogen werden, ansonsten das - 1 weglassen
      $seite = isset($_GET['seite']) ? intval($_GET['seite']) - 1 : 0;
      $startElement = $anzahlProSeite * $seite;

      Hier muss nun eine Plausibilitätsprüfung stehen. $startElement darf nicht kleiner als 0 und weder größer noch gleich count($elemente) sein. Du kannst den Wert stillschweigend in diese Grenzen bringen (am einfachsten auf 0 setzen) oder eine andere Fehlermaßnahme ergreifen.

      Und nun kommt die for-Schleife zum Einsatz, die von $startElement bis $startElement + $anzahlProSeite läuft und als Abbruchbedingung innerhalb der Schleife ein nicht vorhandenes Element in $elemente hat, denn das Element 5 gibt es in diesem Beispiel nicht. Alternativ kann stattdessen auch ein Leer-Wert angezeigt werden, wenn beispielsweise eine Tabelle noch zu Ende gezeichnet werden soll.

      for ($i = $startElement; $i < $startElement + $anzahlProSeite; $i++)
         if (isset($elemente[$i]))
           echo $elemente[$i];
         else
           echo 'leer';

      echo "$verabschiedung $name";

      1. Hallo dedlfix,

        danke für die Antwort.

        Ich habe weiter probiert.
        Seiten werden nun gebildet, ich kann durch Angabe in der Adresszeile des Browsers alle Seiten anzeigen lassen.

        Wenn ich die Variable $elemente[$i] in die entsprechende Tabellenzeile setze, wird das erste Startelement wie gewünscht in der ersten Zeile angezeigt, die weitere Rechnung erfolgt auch korrekt.
        Ich erhalte aber bisher  noch nicht den Inhalt, sondern eine Fehlermeldung in allen Zeilen:

        Notice: Undefined offset: 1 in C:\xampp\htdocs\vera\test.php on line 122
        (bzw. 2, 3 usw)

        Was fehlt denn noch für ein Schritt, um den Inhalt von $formular anzuzeigen (diese Variable einzufügen bringt ja nur leere Tabellenzeilen mit dem Wort array )?

        Der Code sieht jetzt so aus:

          
        // Dateien einbinden  
           include("inc/formular.inc.php");  
           // alternativ $formular = file("inc/formular.txt");  
          
          
        // seitenweise Anzeige  
          
        $elemente = count($formular);  
        $anzahlproseite = 3;  
        $seitenzahl = $elemente / $anzahlproseite;  
                  echo "$elemente &nbsp;&nbsp;Anzahl aller Elemente<br>";  
                  echo "$anzahlproseite &nbsp;&nbsp;&nbsp; pro Seite<br>";  
                  echo "$seitenzahl &nbsp;&nbsp;Anzahl der Seiten<hr>";  
          
        $elemente = array($formular);  
          
        $seite = isset($_GET["seite"]) ? intval($_GET["seite"]) - 1 : 0 ;  
        $startelement = $anzahlproseite * $seite + 1 ;  
        // + 1 setzt erstes Startelement in die erste Zeile der Tabelle  
          
          for ($i = $startelement; $i < $startelement + $anzahlproseite; $i++)  
          
          {   if (isset($elemente[$i]));  
          
          
        echo "\n\n<tr><td colspan'2'>" , ++$count , "</td>\n<td class='ger'>";  
        echo  $elemente[$i] , "</td>\n<td>";  
        echo  "</td>\n<td>";  
        echo  "</td>\n<td>";  
        echo  "</td>\n<td>";  
        echo  "</td>\n<td >";  
        echo  "</td>\n</tr>";  
          
        echo  "\n<tr>";  
        echo  "</td>\n<td class='ko' colspan='4'>";  
        echo  "</td>\n<td class='ko' colspan='2'>";  
        echo  "</td>\n</tr>";  
          
          }  
          
        ?>  
        
        

        mfg
        cygnus

        --
        Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
        1. echo $begrüßung;

          $elemente = array($formular);
          Wenn ich die Variable $elemente[$i] in die entsprechende Tabellenzeile setze, wird das erste Startelement wie gewünscht in der ersten Zeile angezeigt, die weitere Rechnung erfolgt auch korrekt.

          Das kann ich mir gar nicht so recht vorstellen, weil $elemente nach obiger Anweisung ein Array ist mit einem einzigen Element, dessen Wert der Inhalt von $formular ist. Was auch immer in $formular steht.

          Ich erhalte aber bisher  noch nicht den Inhalt, sondern eine Fehlermeldung in allen Zeilen:
          Notice: Undefined offset: 1 in C:\xampp\htdocs\vera\test.php on line 122
          (bzw. 2, 3 usw)

          Kein Wunder, $elemente hat ja auch nur ein Element. Eine Kontrollausgabe hätten dich darüber aufklären können.
          Vielleicht ist $formular bereits ein Array, dann ergibt es in dem Fall keinen Sinn, dass du es noch einmal in ein Array einpackst.

          Was fehlt denn noch für ein Schritt, um den Inhalt von $formular anzuzeigen (diese Variable einzufügen bringt ja nur leere Tabellenzeilen mit dem Wort array )?

          Wenn die Ausgabe von einer Variable das Wort Array ergibt, und dieses nicht als String in der Variable stand, dann hast du versucht, ein Array auszugeben, statt eines Elements daraus. Eine Kontrollausgabe hätten dich darüber aufklären können.

          {   if (isset($elemente[$i]));

          Das ist eine reichlich sinnlose Zeile, so wie sie da steht. "Wenn, Bedingung, [leere Anweisung,] Semikolon". Du wolltest statt der impliziten leeren Anweisung sicher erreichen, dass eine komplette Tabellenzeile ausgegeben wird, also musst du auch diesen gesamten Vorgang als den Anweisungsblock des if notieren.

          echo "$verabschiedung $name";

          1. Hallo :)

            Ich erhalte aber bisher  noch nicht den Inhalt, sondern eine Fehlermeldung in allen Zeilen:
            Notice: Undefined offset: 1 in C:\xampp\htdocs\vera\test.php on line 122
            (bzw. 2, 3 usw)

            Kein Wunder, $elemente hat ja auch nur ein Element. Eine Kontrollausgabe hätten dich darüber aufklären können.

            $elemente ist bisher die einzige Variable, die die Tabelle so erscheinen lässt, dass ich erkennen kann, ob die verschiedenen Seiten abgerufen werden können. Deshalb habe ich das einfach mal stehen lassen.
            Nach dem Studium Deiner vorherigen Antwort  hatte ich angenommen, dass $formular noch mal als array verpackt werden muss.

            Vielleicht ist $formular bereits ein Array, dann ergibt es in dem Fall keinen Sinn, dass du es noch einmal in ein Array einpackst.

            Ich teste ja sowohl eine Version mit einer Textdatei als auch eine Version mit einer includierten Datei namens $formular mit arrays.

            $formular ist bereits ein Array, ich bekomme jetzt eine inhaltliche Ausgabe der Textdatei ab Zeile 1.

            Aber der Inhalt der includierten Datei namens $formular mit arrays wird nicht angezeigt.
            Sollte das auch angezeigt werden können, oder geht es nur mit Textdateien?

            {   if (isset($elemente[$i]));

            Das ist eine reichlich sinnlose Zeile, so wie sie da steht. "Wenn, Bedingung, [leere Anweisung,] Semikolon". Du wolltest statt der impliziten leeren Anweisung sicher erreichen, dass eine komplette Tabellenzeile ausgegeben wird, also musst du auch diesen gesamten Vorgang als den Anweisungsblock des if notieren.

            Eine komplette Tabellenzeile scheint gar nicht möglich zu sein?
            Die Textdatei würde nur eine Spalte füllen, da sie zeilenweise eingelesen wird. Zumindest der Inhalt der Textdatei aber wird über $elemente[$i] einwandfrei  zeilenweise ausgegeben über alle Seiten hin, und zwar sowohl mit als auch ohne diese sinnlose isset-Zeile.

            Die array-Datei könnte/sollte die ganze Tabellenzeile füllen,
            aber ich komme nicht an den Inhalt heran.
            Bin nach wie vor ratlos.

            mfg
            cygnus

            --
            Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
            1. echo $begrüßung;

              Vielleicht ist $formular bereits ein Array, dann ergibt es in dem Fall keinen Sinn, dass du es noch einmal in ein Array einpackst.
              Ich teste ja sowohl eine Version mit einer Textdatei als auch eine Version mit einer includierten Datei namens $formular mit arrays.
              $formular ist bereits ein Array, ich bekomme jetzt eine inhaltliche Ausgabe der Textdatei ab Zeile 1.

              Du hast bis jetzt noch nicht gezeigt, wie das, was du da verarbeiten willst, konkret aussieht, so dass man immer darauf angewiesen ist, deine beschreibenden Worte richtig zu interpretieren.

              {   if (isset($elemente[$i]));
              Das ist eine reichlich sinnlose Zeile, so wie sie da steht. "Wenn, Bedingung, [leere Anweisung,] Semikolon". Du wolltest statt der impliziten leeren Anweisung sicher erreichen, dass eine komplette Tabellenzeile ausgegeben wird, also musst du auch diesen gesamten Vorgang als den Anweisungsblock des if notieren.

              Eine komplette Tabellenzeile scheint gar nicht möglich zu sein?

              Vielleicht hilft es dir, wenn du erst einmal aus deinen bestehenden Daten (oder aus beispielhaft gekürzten) ein statisches Ergebnis erstellst. Dann siehst du ein konkretes Ziel, dem du entgegenstreben kannst und kannst beides (Daten und Ziel) auch mal hier vorstellen, so dass man leichter dein Vorhaben erkennen kann.

              Es ist prinzipiell möglich, jeden beliebigen HTML-Code mit PHP zu erstellen. Alles nur eine Frage des Aufwands.

              Da ich nicht genau durchsehe, was dein Ziel ist, es auch gut möglich, dass ich deine Versuche missinterpretiere und dann nichtzielführende Antworten gebe.

              Die Prüfung mit dem isset() bezieht sich ja auf die bereits vorgestellte seitenweise Anzeige. Da diese von einem berechneten Startelement ausgeht und x Elemente darstellen soll, bleiben am Ende mitunter weniger als x Elemente übrig, wenn die Gesamtzahl nicht durch x teilbar ist. Auf die übriggebliebenen Elemente kann ganz normal zugriffen werden, aber es gilt zu vermeiden, in die Lücke zwischen dem letzten Element und der nächsthöheren durch x teilbaren Zahl zu greifen. Deshalb soll die Prüfung, ob ein Element tatsächlich vorhanden ist, eingesetzt werden, bevor es verarbeitet wird. Diese Verarbeitungsschritte für eines der Elemente müssen in Abhängigkeit des Prüfungsergebnisses erfolgen, sind also nach dem if in einem Block zu klammern.

              echo "$verabschiedung $name";

              1. Hallo :)

                Du hast bis jetzt noch nicht gezeigt, wie das, was du da verarbeiten willst, konkret aussieht, so dass man immer darauf angewiesen ist, deine beschreibenden Worte richtig zu interpretieren.

                Ich möchte zuerst einmal die Grundfunktion verstehen. Ich durchschaue das Zusammenspiel der Variablen und arrays bisher nur sehr unvollkommen. Beim Erarbeiten bin ich sehr auf das Studium von Ursache und Wirkung angewiesen, die Erklärungen im PHP Handbuch helfen derzeit noch nicht viel.

                Vielleicht hilft es dir, wenn du erst einmal aus deinen bestehenden Daten (oder aus beispielhaft gekürzten) ein statisches Ergebnis erstellst. Dann siehst du ein konkretes Ziel, dem du entgegenstreben kannst und kannst beides (Daten und Ziel) auch mal hier vorstellen, so dass man leichter dein Vorhaben erkennen kann.

                Ich habe die Seite mal hochgeladen. CSS ist nicht dabei.
                Die Tabelle ist aber korrekt dargestellt, später können es bis zu 6 Spalten sein. Der bisher ausgegebene Inhalt der Textdatei gibt zeilenweise einzeln die durchnumerierten Buchstaben F o r m u l a r aus.
                Wenn man in der Adresszeile des Browsers ?seite=n hinzufügt, sieht man dass alle acht Seiten richtig ausgegeben werden.

                Ansicht

                mfg
                cygnus

                --
                Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
  4. Hallo :)

    Inzwischen plage ich mich mit der Verlinkung der Seiten herum.
    Solange ich die Seiten oben in der Browseradresszeile angebe, werden sie fehlerfrei angezeigt.
    Aber es hakt noch, sowie ich versuche, Links zu generieren.

    Deshalb habe ich ein paar generelle Fragen zu den Seitenverweisen.

    Hier verweise ich auf die aktuelle Seite mit Angabe der Gesamtzahl.
    Funktioniert einwandfrei.

      
    $verweis = $seite +1 ;  
    // Verweis auf die aktuelle Seite  
       echo "Seite&nbsp;" .$verweis. "&nbsp;von&nbsp;" .$seitenzahl. "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;";  
    
    

    Aber wenn ich jetzt beispielsweise diesen Link auf die Seite bringe und benutze, dann bleibt eine aufgerufene akutelle Seite stehen, nicht einmal durch Ändern der Browserzeile kann ich noch andere Seiten aufrufen. Es ist immer die Seite 2.

      
    // Verweis auf die letzte Seite  
      
       if ( $seitenzahl == $verweis ) {  
          echo "letzte&nbsp;Seite&nbsp;&nbsp;|";  
          } else {  
          echo "<a href=\"?page=$seitenzahl\">letzte&nbsp;Seite</a>&nbsp;&nbsp;|";  
          }  
    
    

    $seitenzahl entspricht der errechneten Gesamtzahl der Seiten.
    Aber $verweis ist ja nur die Seite+1 (um als erste Seite nicht 0, sondern 1 auszugeben). Und da hakt es offensichtlich, denn ich bleibe oft auf der Seite 2 hängen (Das ist Seite 1 + 1, genaugenommen).

    Ich vermute ich brauche eine Variable für die aktuelle Seite, so etwas wie $pagecount.

    Hier ist ein anderes Beispiel, dass nicht funktioniert, vermutlich wegen der variable $verweis.

      
    // Verweis auf weiter  
       if ( $verweis > $seite+1 ) {  
          echo "weiter&nbsp;|&nbsp;";  
          } else {  
          echo "<a href=\"?page=$verweis\">weiter</a>&nbsp;&nbsp;|&nbsp;&nbsp;";  
          }
    

    Das ist die benutzte For-Schleife für die Seitenerstellung:

    for ($i = $startelement; $i < $startelement + $anzahlproseite; $i++)

    Ich habe natürlich noch mehr ausprobiert, ohne Erfolg.
    Ich habe derzeit nicht die geringste Vorstellung, wie ich das lösen kann.

    Hat jemand einen Tipp für mich, ein paar Stichworte zum Nachlesen oder einen Hinweis auf Fehler?

    mfg
    cygnus

    --
    Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
    1. echo $begrüßung;

      Hat jemand einen Tipp für mich, ein paar Stichworte zum Nachlesen oder einen Hinweis auf Fehler?

      Ich kann dir da nur den allgemeinen Tipp geben: Mach Kontrollausgaben deiner Variablen und vergleiche Wunsch und Wirklichkeit. Du wirst ja sicher einen Plan haben, dass wenn jemand gerade Seite x aufgerufen hat, die Links x-1 und x+1 heißen müssen. Also kontrolliere deine Variableninhalte, bevor du den Link generierst.

      Ein paar kleine Codeausschnitte sind nicht immer geeignet, ein Problem nachzuvollziehen. Noch wenniger sind sie es, wenn der Inhalt der Variablen dem potentiellen Helfer nicht bekannt ist.

      Aber $verweis ist ja nur die Seite+1 (um als erste Seite nicht 0, sondern 1 auszugeben). Und da hakt es offensichtlich, denn ich bleibe oft auf der Seite 2 hängen (Das ist Seite 1 + 1, genaugenommen).

      Dieser "0 = 1"-Versatz kann ein Problem sein, wenn du diesen Offset nicht durchgehend berücksichtigst. Einfach wäre es, wenn du von der laut URL-Parameter gewünschten Seitennummer gleich zu Anfang die -1 abziehst und so intern mit der 0-basierenden Seitennummer arbeitest. Erst beim Generieren der Blätter-Links benötigst du wieder ein +1.

      Wenn x die angezeigt Seite ist, dann ist x0 = x - 1 die 0-basierende Seitennummer. Der Zurücklink berechnet sich aus x0 - 1 + 1 und der Vorwärtslink ist dann x0 + 1 + 1.

      echo "$verabschiedung $name";

      1. Hallo dedlfix,
        danke für die Antwort.

        Ich habe Deine Vorschläge befolgt und Kontrollausgaben für die relevanten Variablen gemacht. Das Ergebnis erscheint einwandfrei, genau wie die Darstellung der Tabelle.

        Trotzdem schalten die Links nicht bzw. sie schalten oben in der Adresszeile des Browser auf die richtige Seite, aber die Seite an sich wird nicht umgeblättert.

        Woran kann das liegen?

        Hier die Ansicht der Seite mit den Kontrollausgaben und der Tabelle.
        http://www.wp1013159.wp023.webpack.hosteurope.de/index_mit.php

        Und hier der Code dazu:

          
        <?php  
        // alle Fehler anzeigen  
          
           error_reporting(E_ALL | E_STRICT);  
           ini_set('display_errors', 'On');  
          
          
        // Dateien einbinden  
          
           $erste = file("inc/erste.txt");  
           $zweite = file("inc/zweite.txt");  
           $dritte = file("inc/dritte.txt");  
           $vierte = file("inc/vierte.txt");  
           $funfte = file("inc/funfte.txt");  
           $sechste = file("inc/sechste.txt");  
           $kommentar = file("inc/kommentar.txt");  
          
          
          
        // Zaehler einstellen  
          
           $elemente = count($erste);  
           $anzahlproseite = 4;  
           $gesamtseiten = $elemente / $anzahlproseite;  
          
          
        // seitenweise Anzeige  
          
           $elemente = $erste;  
           $seite = isset($_GET["seite"]) ? intval($_GET["seite"]) -1 : 0;  
           $startelement = $anzahlproseite * $seite;  
           $pagecount = $seite +1;  
          
          
        // aktuelle Seite  
          
          
          
        // erste Seite  
        $ersteseite = $pagecount;  
          
           if( $ersteseite == 1 ) {  
               echo " erste&nbsp;Seite&nbsp;&nbsp;|&nbsp;&nbsp;";  
           } else {  
               echo "<a href=\"?page=ersteseite\">erste&nbsp;Seite</a>&nbsp;&nbsp;|&nbsp;&nbsp;";  
             }  
          
          
        // zurueck  
        $zurueck = $pagecount -1;  
          
           if( $zurueck <= 0 ) {  
              echo "zurück&nbsp;&nbsp;|&nbsp;&nbsp;";  
           } else {  
              echo "<a href=\"?page=$zurueck\">zurück</a>&nbsp;&nbsp;|&nbsp;&nbsp;";  
             }  
          
          
        // weiter  
        $weiter = $pagecount + 1;  
          
           if( $gesamtseiten < $weiter ) {  
              echo "weiter&nbsp;&nbsp;|&nbsp;&nbsp;";  
           } else {  
              echo "<a href=\"?page=$weiter\">weiter</a>&nbsp;&nbsp;|&nbsp;&nbsp;";  
             }  
          
          
        // letzte Seite  
          
           if( $gesamtseiten == $pagecount ) {  
               echo " letzte&nbsp;Seite&nbsp;&nbsp;|&nbsp;&nbsp;";  
           } else {  
               echo "<a href=\"?page=$gesamtseiten\">letzte&nbsp;Seite</a>&nbsp;&nbsp;|&nbsp;&nbsp;";  
             }  
          
          
        // Kontrollausgaben  
          echo "<hr>&nbsp;Kontrolle: anzahlproseite&nbsp;" .$anzahlproseite. " <br>";  
          echo "&nbsp;Kontrolle: gesamtseiten&nbsp;" .$gesamtseiten. "<br>";  
          echo "&nbsp;Kontrolle: Seite&nbsp;" .$pagecount. "&nbsp;von&nbsp;" .$gesamtseiten. "&nbsp;&nbsp;&nbsp;&nbsp;<br>";  
          
          
               if (isset($seite))  
             echo "&nbsp;Kontrolle: seite&nbsp;=&nbsp;" .$seite. "<br>";  
           else  
             echo 'leer';  
          
               if (isset($pagecount))  
             echo "&nbsp;Kontrolle: pagecount&nbsp;=&nbsp;" .$pagecount. "<br>";  
           else  
             echo 'leer';  
          
                   if (isset($weiter))  
             echo "&nbsp;Kontrolle: weiter&nbsp;=&nbsp;" .$weiter. "<br>";  
           else  
             echo 'leer';  
          
                  if (isset($zurueck))  
              echo "&nbsp;Kontrolle: zurueck&nbsp;=&nbsp;" .$zurueck. "<br>";  
           else  
             echo 'leer';  
          
                    if (isset($ersteseite))  
             echo "&nbsp;Kontrolle: erste&nbsp;=&nbsp;" .$ersteseite. "<br>";  
           else  
             echo 'leer';  
          
                  if (isset($gesamtseiten))  
              echo "&nbsp;Kontrolle: letzte&nbsp;=&nbsp;" .$gesamtseiten. "<br>";  
           else  
             echo 'leer';  
          
          
        // Schleife  
          
        for ($i = $startelement; $i < $startelement + $anzahlproseite; $i++)  
          
           {  
          
        echo "\n\n<tr><td class='nr' rowspan='2'>" , $i + 1 , "</td>\n<td class='ger'>";  
        echo  $erste[$i] , "</td>\n<td class='ger2'>";  
        echo  $zweite[$i] , "</td>\n<td class='lat1'>";  
        echo  $dritte[$i] , "</td>\n<td class='lat2'>";  
        echo  $vierte[$i] , "</td>\n<td class='grk1'>";  
        echo  $funfte[$i] , "</td>\n<td class='gen1'>";  
        echo  $sechste[$i] , "</td>\n</tr>";  
        echo  "\n<tr>";  
        echo  "</td>\n<td class='ko' colspan='5'>";  
        echo  $kommentar[$i] , "</td>\n<td class='ko'>";  
        echo  "</td>\n</tr>";  
          
           }  
          
          
          
        ?>  
          
          
        
        

        mfg
        cygnus

        --
        Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...
        1. echo $begrüßung;

          Trotzdem schalten die Links nicht bzw. sie schalten oben in der Adresszeile des Browser auf die richtige Seite, aber die Seite an sich wird nicht umgeblättert.
          Woran kann das liegen?

          Kurze Antwort: page != seite

          echo "$verabschiedung $name";

          1. Hallo :)

            Woran kann das liegen?

            Kurze Antwort: page != seite

            Nicht zu fassen!
            Das wäre mir nie nie nie aufgefallen.
            Nun macht das Spazierengehen im Blätterwald richtig Spass,
            und die Funktionweise habe ich nun auch verstandem.

            Halt Dir mal die Ohren zu, jetzt wird es laut:  DANKE

            mfg
            cygnus

            --
            Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...