Blätterfunktion Dateibassiert

Maggi13

Mitglied
Hey...

Ich weis das wurde hier schon oft besprochen nur nichts hat mir recht weitergeholfen meine Gästebucheinträge sind anders aufgebaut...

gaestebuch.txt (Beispiel)
Name|Mail/Homepage|Inhalt|Datum/Uhrzeit
Name2|Mail/Homepage2|Inhalt2|Datum/Uhrzeit2

Halt überall wo nun ein \n oder \r ist fängt ein neuer Eintarg an. Und ich möchte halt eine bLätterfunktion haben die dies realisieren kann.

Die auslesung von den Beiträgen:
PHP:
<?php
$beitrag = file("gaestebuch.txt");
krsort($beitrag);

foreach($beitrag as $ausgabe)
   {
   $ausgabe = stripslashes($ausgabe);
   $zerlegen = explode("|", $ausgabe);   
   }
?>

Vielen Dank im voraus.
 
Moin,

dein Vorhaben wird einfacher umzusetzen sein, als du vielleicht denkst, denn du hast da etwas Wunderbares, um die Anforderungen an solch eine Blätterfunktion umzusetzen, einen Array :)

Per count() erhältst du ja die Länge eines Arrays. Diese musst du nur durch die Anzahl der pro Seite anzuzeigenden Einträge multlipizieren, schon hast du einen Wert für die Seitenanzahl, welchen du nur durchlaufen musst, um die Navigation zu Erzeugen.

Die anzuzeigenden Einträge selbst kannst du aus dem Array per array_slice() "extrahieren"...die Ausgabe selbst kann dann so erfolgen, wie sie bereits jetzt erfolgt.
 
Danke nur weis ich nicht so genau wie ich das nun umsetzen sollte ... ? teilen tu ich die auf mi \r\n wie kann cih das nun mit count udn so verbinden?
 
PHP:
$beitrag = file("gaestebuch.txt");

In $beitrag sind alle Einträge als Array gespeichert. Wenn du nun count() auf dieses Array anwendest, bekommst du die Anzahl der Einträge (Zeilen) zurück.

Und Anhand dieser Zahl kannst du dann die Ausgabe gestalten.
 
Ja das ist kla nur ich weis nicht wie ich das nun genau mahcen kann ... wie soll ich das denn ausgeben ich kenne mich mit arrays nicht sonderlich aus... kann nicht jemand mal das gesamte pronzip sagen udn nen besipiel geben...
 
Hier ein Beispiel:
PHP:
$zeilen = count( $beitrag ); // Anzahl der Zeilen in der Datei zählen
$aktuelleSeite = 1; // Die aktuelle Seite, bekommt man zum Beispiel aus $_GET
$proSeite = 10; // Anzahl der Beiträge, die pro Seite angezeigt werden sollen
$seiten = ceil( $zeilen / $proSeite ); // Anzahl der Seiten ermitteln
$start = ( $aktuelleSeite - 1 ) * $proSeite; // Startwert für array_slice ermitteln.
$zeilen_zum_anzeigen = array_slice( $beitrag, $start, $proSeite ); // Das fertige array


Und wie du die Links für die Blätterfunktion generierst erfährst du unter anderem hier.
 
Zuletzt bearbeitet:
Danke das hat so super geklappt:
PHP:
<?php 
$beitrag = file("gaestebuch.txt"); 
krsort($beitrag); 

$aktuelleSeite = $_GET["siteid"];

if(!isset($aktuelleSeite) or $aktuelleSeite=="")
{
$aktuelleSeite = "1";
}

$zeilen = count($beitrag);
$proSeite = 6;
$seiten = ceil($zeilen / $proSeite);
$start = ($aktuelleSeite - 1) * $proSeite;
$beitraege = array_slice($beitrag, $start, $proSeite);

foreach($beitraege as $ausgabe) 
   { 
   $ausgabe = stripslashes($ausgabe); 
   $zerlegen = explode("|", $ausgabe);    
   } 
?>

Nur wie mache ich das nun noch das unten die seitenzahl angezeigt wird habe mir überlegt es so zu amchen was aber net so ganz geht
PHP:
$siteview1 = $aktuelleSeite - "1";
$siteview2 = $aktuelleSeite - "2";
$siteview3 = $aktuelleSeite + "1";
$siteview4 = $aktuelleSeite + "2";

$gbadresse = "index.php?site=gaestebuch&siteid=";

echo"<a href=\"$gbadresse1\">1</a> ... <a href=\"$gbadresse$siteview1\">$siteview1</a> <a href=\"$gbadresse$siteview2\">$siteview2</a> <b><a 

href=\"$gbadresse$aktuelleSeite\"></a></b> <a href=\"$gbadresse$siteview3\">$siteview3</a> <a href=\"$gbadresse$siteview4\">$siteview4</a> ";

:rolleyes:
 
Soo...
Das mit der Seitenanzeige hab ich nun so etwas umständlich aber fektionierend gelöst:
PHP:
$siteview1 = $aktuelleSeite - "2";
$siteview2 = $aktuelleSeite - "1";
$siteview3 = $aktuelleSeite + "1";
$siteview4 = $aktuelleSeite + "2";

$gbadresse = "index.php?site=gaestebuch&siteid=";

$siteviews = "<table cellspacing=\"0\" bordercolordark=\"#995f2c\" cellpadding=\"5\" align=\"center\" bgcolor=\"#c9ab8e\" bordercolorlight=\"#995f2c\" 

border=\"1\">
   <tr>
   <td><a href=\"index.php?site=gaestebuch&siteid=1\">1</a> ... <a href=\"$gbadresse$siteview1\">$siteview1</a> <a href=\"$gbadresse$siteview2

\">$siteview2</a> <a href=\"$gbadresse$aktuelleSeite\">$aktuelleSeite</a> <a href=\"$gbadresse$siteview3\">$siteview3</a> <a href=\"$gbadresse$siteview4

\">$siteview4</a> ... <a href=\"$gbadresse$seiten\">$seiten</a> </td>
   </tr>
   </table>";

$siteviews = str_replace("<a href=\"index.php?site=gaestebuch&siteid=-1\">-1</a>", "", $siteviews);
$siteviews = str_replace("<a href=\"index.php?site=gaestebuch&siteid=0\">0</a>", "", $siteviews);

$trashend1 = $seiten + "1";
$siteviews = str_replace("<a href=\"index.php?site=gaestebuch&siteid=$trashend1\">$trashend1</a>", "", $siteviews);

$trashend2 = $seiten + "2";
$siteviews = str_replace("<a href=\"index.php?site=gaestebuch&siteid=$trashend2\">$trashend2</a>", "", $siteviews);

Wer das Gb sehen will findet es hier:
http://magggi13.ma.ohost.de/index.php?site=gaestebuch

Danke an alle dei mir geholfen haben die Blätterfunktion zu ermöglichen...
 
Zurück