Formatierte Anzeige unserer Gästebuch-Einträge
Enrico
- php
Hallo,
Ich habe Probleme mit nachfolgendem Code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="CSS_definitionen.css">
</head>
<body>
<?
$eintraege_pro_seite = 10;
$anzahl_eintraege = count("CSV_gaestebuch_eintraege.csv");
$anzahl_seiten = ceil($anzahl_eintraege / $eintraege_pro_seite);
function navigation()
{
if (!isset($anfang))
$anfang = 0;
if ($anfang > 0)
{
echo "<a href='PHP_gaestebuch_ausgabe.php?anfang=0'>[Erste Seite]</a>";
$zurueck = $anfang - $eintraege_pro_seite;
if ($zurueck < 0)
$zurueck = 0;
echo "<a href='PHP_gaestebuch_ausgabe.php?anfang=$zurueck'>[Zurückblättern]</a>";
}
if ($anzahl_eintraege > $eintraege_pro_seite)
{
$seiten = intval($anzahl_eintraege / $eintraege_pro_seite);
if ($anzahl_eintraege % $eintraege_pro_seite)
$seiten++;
}
for ($i = 1; $i <= $seiten; $i++)
{
$position = ($i - 1) * $eintraege_pro_seite;
echo "<a href='PHP_gaestebuch_ausgabe.php?anfang=$position'>$i</a>";
}
if ($anfang < $anzahl_eintraege - $eintraege_pro_seite)
{
$position = $anfang + $eintraege_pro_seite;
echo "<a href='PHP_gaestebuch_ausgabe.php?anfang=$position'>[Vorblättern]</a>";
$position = $anzahl_eintraege - $eintraege_pro_seite;
echo "<a href='PHP_gaestebuch_ausgabe.php?anfang=$fwd'>[Letzte Seite]</a>";
}
}
navigation();
for($j = $seite-1; $j < $eintraege_pro_seite + $seite - 1; $j++)
{
[...] Ausgabe der Einträge [...]
}
navigation();
?>
</body>
</html>
--------
Probleme
--------
Die Navigation ober-und unterhalb der Einträge wird nicht angezeigt.
Es werden nur leere Tabellen angezeigt, obwohl drei Test-Einträg bestehen.
Die Anzahl der Einträge scheint "unterzugehen", da die ganze Seite mit leeren Tabellen gefüllt wird.
Zu 2) und 3): Die Pfad-Angaben passen aber.
Was stimmt nicht ?
Gruss, Enrico
Hatte ausserdem vergessen, die Datei anzugeben :o)
$datei = file("CSV_gaestebuch_eintraege.csv");
$anzahl_eintraege = count($datei)-1;
Nichtsdestotrotz funktioniert es nicht :-(
Gruss, Enrico
Hallo Enrico,
<?
wenn du <?php verwendest, funktioniert dein Code auch bei short_open_tags=off - aber das nur am Rande.
$anzahl_eintraege = count("CSV_gaestebuch_eintraege.csv");
in $anzahl_eintraege steht jetzt 1 drin - egal was in der csv-Datei steht. Schau dir nochmal an, was count macht (->http://de2.php.net/count) - du willst den Inhalt der Datei vermutlich erst in eine Array lesen, und mit diesem Array die Funktion count "füttern" (ich weiß aber nicht, wie deine Datei aussieht).
$anzahl_seiten = ceil($anzahl_eintraege / $eintraege_pro_seite);
das gibt 1 (was du ja vermutlich bei drei Testeinträgen auch erwartet hast).
function navigation()
{
if (!isset($anfang))
wo kommt $anfang her?
$anfang = 0;
da $anfang nicht gesetzt ist, wird $anfang hier auf 0 gesetzt.
if ($anfang > 0)
diese Bedingung wird nie erfüllt sein ...
if ($anzahl_eintraege > $eintraege_pro_seite)
... und die auch nicht - die Variablen $anzahl_eintraege und $eintraege_pro_seite sind innerhalb der Funktion nicht bekannt. Du musst die Variablen mit global (->http://de.php.net/language.variables.scope) innerhalb der Funktion bekannt machen, oder - besser - beim Aufruf der Funktion als Parameter übergeben (lies hierzu http://de.php.net/functions).
for ($i = 1; $i <= $seiten; $i++)
$seiten ist ebenfalls unbekannt.
Grüße aus Nürnberg
Tobias
Hallo Tobias,
Sorry für die verspätete Danksagung, aber ich war arbeitsmässig "etwas" eingebunden :o)
Ich habe jetzt eine andere Lösung erarbeitet, die fast - leider erst fast - funktioniert.
Ich habe den Code in einem neuen Eintrag gepostet, damit er auch gelesen und mir vielleicht auch geholfen wird :o)
Trotzdem Danke für Deine Hilfestellung.
Gruss, Enrico