XaraX: Blätterfunktion im eigenen Hirn funktioniert?

Beitrag lesen

Hallo,

Entschuldigt bitte, wenn ich Euch wiedermal mit meinem Blätter-Problem bemühen muss, aber bald ist es geschafft (hoffe ich)   :o)

Die Blätterfunktion funktioniert nicht, wie sie soll und es werden nun zudem auch keine Einträge mehr angezeigt.  :o)

Wo liegt der Hund begraben, der mir soviel Kopfzerbrechen bereitet ?

Gruss, Enrico

<html>
  <head>
    [...]
  </head>
  <body>
    <?php
      $datei               = file("CSV_gaestebuch_eintraege.csv");
      $anzahl_eintraege    = count($datei);
      $eintraege_pro_seite = 5;

if (!isset($aktuelle_seite))
        $aktuelle_seite = 1;

diese if-Anweisung wird immer TRUE ergeben,

sie ist also sehr sehr sehr flüssig ;)

$anzahl_seiten = ceil($anzahl_eintraege / $eintraege_pro_seite);

$anfang = $anzahl_eintraege - ($eintraege_pro_seite * ($aktuelle_seite - 1));

($aktuelle_seite - 1) dieser Ausdruck ergibt NULL

man könnte auch der Einfachheit halber schreiben:

$anfang = $anzahl_eintraege;

noch deutlicher für einen untenstehenden Denkfehler:

$anfang=count($datei);

$ende   = $anfang + $eintraege_pro_seite;

$ende=count($datei)+5;

for ($i = $anfang; $i >= $ende ;$i--)

anders geschrieben:

for($i=count($datei);$i>=(count($datei)+5);$i--)

wird 1 jemals größer sein als 6?

{
        $zeile = $lines[$i-1];

nanu? hast Du uns code vorenthlaten?

wie definiert sich $lines?   O.O

list($nr,$autor,$ueberschrift,$datum,$uhrzeit,$eintrag,$homepage,$email ) = explode ("|", $zeile);

echo('...');

}

if ($aktuelle_seite>1)

da $aktuelle_seite=1 ist, und im gesammten Programmfluß

nicht mehr verändert wird, ergibt diese Anweisung immer FALSE

{
        $i=$aktuelle_seite-1;
        echo "<a href='$PHP_SELF?aktuelle_seite=$i'>[zurück]</a>";
      }

for($i=1; $i<=$anzahl_seiten; $i++)

diese Schleife ergibt im ersten Durchlauf TRUE, dann FALSE

anscheinend ist $anzahl_eintraege <=5

damit ist gleichfalls $anzahl_seiten mit 1 definiert

{
        if ($i==$aktuelle_seite)
          echo "[$i]";

Ausgabe: [1]

Das ist auch exakt das, was bei Dir erscheint

else
          echo "<a href='$PHP_SELF?aktuelle_seite=$i'>[Seite $i]</a>";
      }

if ($aktuelle_seite<$anzahl_seiten)
      {
        $i=$aktuelle_seite+1;
        echo "<a href='$PHP_SELF?aktuelle_seite=$i'>[vor]</a>";
      }
    ?>
  </body>
</html>

Anmerkungen:

Im eigentlichen ist das alles ganz simple Lektüre und ich würde daher empfehlen mal über deine Vergabe von Variablen-namen nachzudenken:

$aktuelle_seite
$anfang
$anzahl_eintraege
$anzahl_seiten

Persönlich bin ich ein absoluter Feind von solchen $4_Meter_Bretter_Namen. Die einzige Var, die alles in sich speichert, was Du brauchst, ist das Array $datei, der Du über verschiedenste vordefinierte Funktionen alles entlocken kannst. Das hast Du ja auch gemacht: count($datei). Für Deine Übersicht über solche scripte kann ich Dir nur empfehlen auch mit diesem Ausdruck zu arbreiten -

count($datei) ist war und bleibt count($datei); das bischen an Resourcen ist es allemal wert

  • und diesen Ausdruck nicht in irgendwelchen Variablen ($anzahl_eintraege) verschwinden zu lassen. Parameter wie $eintraege_pro_seite schreibe Dir bitte einfach als Zahl in den Steuerfluß.

Wie ich Deiner o. g. "Fehlerbeschreibung", die wahsaga NICHT EINFACH SO hinterfragte(!), entnehme, ist es anscheinend nicht das erste mal, daß Du PHP-Probleme durch ANDERE Hirne erledigen läßt. Auch davor sei gewarnt, denn es bringt DICH nicht weiter, sondern wird Dich bis zur Überwindung Deiner  eigenen Faulheit vom Fleiß anderer abhänig machen.

Bsw.: Was machst Du, wenn Du mehr als eine Seite mit diesem script ausgeben mußt? Wieder wegen eines noch nicht eingefügten for() im Forum posten?

Gruß aus Berlin!
eddi