[PHP] Gästebuch

squadron

Mitglied
Hallo,
ich habe folgendes Problem:
Ich habe in meinem Gästebuch eine Blätterfunktion eingebaut!
Nun wird aber eine Seite zuviel angezeigt, also :
1 Eintrag aber schon 2 Seiten!
Außerdem beginnt er von [0] an Seiten zu erstellen!

Ich poste hier mal den Code:
PHP:
<a href="?section=sign_gb">sign GBook </a><br>

<?php
//Datenbank Datei
include('mysql/mysql.inc.php');

//Max. Einträge pro Seite
$proseite = 5;

//Verbindungsaufbau mit der Datenbank
$db = mysql_connect ($mysql_host,$mysql_username,$mysql_password); 
mysql_select_db ($mysql_database); 
$sql = "SELECT * FROM `p_gbook`"; 
$result = mysql_query($sql,$db); 
$number = mysql_num_rows($result);

$seiten=ceil($number/$proseite);

$start=$_GET['page'] * $proseite; 
$sql="SELECT * FROM p_gbook ORDER BY id DESC LIMIT $start,$proseite"; 
$result = mysql_query($sql,$db);

$ende = $start + $proseite; 
if ($ende>$number) { $ende = $number; }

//Eintrags Ausgabe
while ($row = mysql_fetch_array($result)) { 
?>
<br>
<table width="440" height="117" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="70" height="19" bgcolor="#999999" class="content">Name : </td>
    <td class="content" width="370"><?php echo $row['name']; ?></td>
  </tr>
  <tr>
    <td height="19" bgcolor="#999999" class="content">Datum : </td>
    <td class="content" ><?php echo $row['date']; ?></td>
  </tr>
  <tr>
    <td height="19" bgcolor="#999999" class="content">Website : </td>
    <td class="content"><a target="_blank" href="http://<?php echo $row['website']; ?>"><?php echo $row['website']; ?></a></td>
  </tr>
  <tr>
    <td valign="top" bgcolor="#999999" class="content">Text : </td>
    <td class="content" height="60" valign="top"><?php echo $row['text']; ?></td>
  </tr>
</table>

<?php
//Ausgabe von Seiten
}
if ($_GET['page']>0) { 
    $i=$_GET['page']-1; 
    echo "<a href=\"?section=gbook&page=".$i."\">&lt;previous </a>"; 
} 
for($i=0; $i<=$seiten; $i++) { 
    if ($i==$_GET['page']) { 
        echo "[".$i."]&nbsp;"; 
    } 
    else { 
        echo "<a href=\"?section=gbook&page=".$i."\">$i</a>&nbsp;"; 
    } 
} 
if ($_GET['page']<$seiten) { 
    $i=$_GET['page']+1; 
    echo "<a href=\"?section=gbook&page=".$i."\">next&gt;</A>"; 
}
?>

Ich freue mich auf Antworten!
 
Hi!

Ändere mal deine Link-Erzeugung wie folgt ab:

if ($_GET['page']>=2) {
$i=$_GET['page']-1;
echo "<a href=\"guestbook.php?page=".$i."\"><big>Zurück</big></a>"."&nbsp";
}
for($i=1; $i<=$seiten; $i++) {
if ($i==$_GET['page']) {
echo "<font color=\"#FFFF00\">".$i."</font>"."&nbsp;";
}
else {
echo "<a href=\"guestbook.php?page=".$i."\"><font color=\"#FFFF00\">$i</font></a>&nbsp;";
}
}
if ($_GET['page']<$seiten) {
$i=$_GET['page']+1;
echo "<a href=\"guestbook.php?page=".$i."\"><big>Vorwärts</big></a>";
}



Ergebnis:
Ein Zurück-Button ist erst sinnvoll, wenn es mindestens zwei Seiten gibt - wohin solte er sonst hin? ;)
Dein erster Link wird erzeugt für $i=1 - und nicht schon für $i=0, welches die Seite ist auf der dann nichts steht.

_______________edit_________________
Was ich noch vergessen habe:
Der Aufruf deines Gästebuches erfolgt dann über: guestbook.php?page=1

_______________end edit______________



(Wenn ich mich richtig erinnere, dann habe ich dem Autor des Tutorials, über das du dieses Gästebuch erstellt hast, schon auf diese "Fehlerchen" aufmerksam gemacht - allerdings nie eine Antwort erhalten - kann aber auch sein, dass mich meine Erinnerung da täuscht ;) )
 
Zuletzt bearbeitet:
Scheint nicht zu funktionieren!


PHP:
//Ausgabe von Seiten
}
if ($_GET['page']>=2) {
	$i=$_GET['page']-1;
    echo "<a href=\"?section=gbook&page=".$i."\">&lt;zurück </a>"; 
} 
for($i=0; $i<=$seiten; $i++) { //habe ich wiedre auf 0 gestellt
    if ($i==$_GET['page']) { 
        echo "[".$i."]&nbsp;"; 
    } 
    else { 
        echo "<a href=\"?section=gbook&page=".$i."\">$i</a>&nbsp;"; 
    } 
} 
if ($_GET['page']<$seiten) { 
    $i=$_GET['page']+1; 
    echo "<a href=\"?section=gbook&page=".$i."\">vor&gt;</A>"; 
}

Ich habe oben die 1 wieder in die 0 geändert weil die Aktuelle Seite nicht angezeigt wird!
Die Aktuelle Seite wird mit 2 Klammern angezeigt!
Also bei mir : [0]

Die komplette Ausgabe : [0] 1 vor>
 
So mittlerweile erinnere ich mich wieder - ich habe tatsächlich diese Fehler dem Autor des Tutorials übermittelt.

Es ist noch ein weiterer Fehler vorhanden - ändere mal wieder deine Link-Erzeugung auf das von mir geschriebene.

Und der andere Fehler:

$start=$_GET['page'] * $proseite;

Ändere das in: $start=($_GET['page'] - 1) * $proseite;

Ansonsten gibt die mySQL - Abfrage nämlich wenn die erste Seite angezeigt werden soll deine Einträge 6 bis 10 an - wenn die nicht existieren, können sie auch nicht angezeigt werden.

Versuch's mal - es sollte eigentlich funktionieren.

Wenn's dann immer noch nicht klappen sollte, geb ich dir meinen Code - der funktioniert wunderbar - kannste dir hier mal angucken.

cu shutdown
 
Für mich ist das wieder der Beweis, dass ein Tutorial zum blankem Abkopieren missbraucht wurde und nicht zum Verständnis der Löung eines Problems.

snuu
 
Zurück