Blätterfunktion

domiweber

Erfahrenes Mitglied
Hallo
Bei meinem GB habe ich eine Blätterfunktion die auch richtig funktioniert.
Doch leider gibt es irgendwann halt zb. 100 Seiten.
Aber ich will das zb. nur immer 5 Seiten angezeigt werden. Also wenn man auf der 1. Seite ist dann steht dort: Seite: 1 2 3 4 5... Letzte Seite
Und wenn man auf der 7 Seite ist dann steht dort: Seite: Erste Seite ...5 6 7 8 9... Letzte Seite
Oder irgendwie so.
Hatt da jemand einen Lösungsvorschlag?
mfg Domi
 
Habe hier einfach mal den ganzen Code vom GB
PHP:
<p align="center"><a href="index.php?section=gbeintrag">Ins Gästebuch eintragen 
  </a></p>
<p> 
  <?php

$ErgebnisseProSeite = 5;

$DatabasePointer=mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $DatabasePointer);

if(!isset($_REQUEST['AktuelleSeite']))
{
	$AktuelleSeite=0;
}
else
{
	$AktuelleSeite=$_REQUEST['AktuelleSeite'];
}

$ResultPointer=mysql_query("SELECT * FROM gb ORDER BY Datum DESC LIMIT $AktuelleSeite, $ErgebnisseProSeite", $DatabasePointer);
$Anzahl=mysql_num_rows(mysql_query("SELECT * FROM gb ORDER BY Datum DESC", $DatabasePointer));

echo"<table border=\"0\"  widht=\"100%\">";
for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
{
	$Gaestebuch=mysql_fetch_object($ResultPointer);
	echo "<tr widht=\"100%\">",
		"<td  widht=\"100%\"><b>",
		"<font color=\"#FF0000\" size=\"2\" face=\"arial\">",$Gaestebuch->Name,"</font>","<font size=\"1\" color=\"CCCCCC\" face=\"Arial\">","<div align=\"right\">",$Gaestebuch->id,"</div>","","</font>","<div align=\"rileft\">","<font size=\"1\" color=\"CCCCCC\" face=\"Arial\">","<a href=\"mailto:$Gaestebuch->EMail\">",$Gaestebuch->EMail,"</a>","<br>", "<a href=\"http://$Gaestebuch->Url\">",$Gaestebuch->Url,"</a>","</font>","</div>","<div align=\"right\">","<font size=\"1\" color=\"#CCCCCC\" face=\"arial\">","<em>",substr($Gaestebuch->Datum, 8, 2),
		".",
		substr($Gaestebuch->Datum, 5, 2),
		".",
		substr($Gaestebuch->Datum, 0, 4),
		" ",
		substr($Gaestebuch->Datum, 10),"</font>","</div>",
		"</b></td>",
		"</tr>",
		"<tr  widht=\"100%\">",
		"<td  widht=\"100%\">",
		nl2br($Gaestebuch->Eintrag),
		"</td>",
		"</tr>",
		"<tr  widht=\"100%\">",
		"</b></td>",
        "</tr>",
        "<tr widht=\"100%\">",
		"<td widht=\"656\"><hr size=\"1\" noshade widht=\"100%\"></td>",
		"</tr>";
}
echo "</table>";

if($Anzahl>$ErgebnisseProSeite)
{
	$Seiten=intval($Anzahl/$ErgebnisseProSeite);
	if($Anzahl%$ErgebnisseProSeite)
	{
		$Seiten++;
	}
	echo"Seite ";	
}
for($i=1; $i<=$Seiten; $i++)
{
	echo"<a href=\"index.php?section=gb&AktuelleSeite=",
		($i-1)*$ErgebnisseProSeite,
		"\">$i</a>&nbsp;";
}

?>
</p>
<p>&nbsp; </p>
</body>
</html>
 
Das ist nicht so schwer.
PHP:
$DatabasePointer=mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx", $DatabasePointer);
Hier gibts du einfach die zugangsdaten ein

PHP:
SELECT * FROM gb ORDER BY Datum DESC
Und hier bei gb gibst du deine Datanbank Tabelle ein und schon sollte es funktionieren.
Nur die DB Tabelle musst du vielleicht einwenig anpassen, oder meine Angaben...
 
Ok, relativ einfach wäre es die Zahlen darstellen zu lassen, da du immer den aktuellen Wert $AktuelleSeite hast, kannst du davon -3 +3 oder so machen.

Problematischer wird das ganze erst, wenn z.B. auf Seite 15, die Seiten bis 18 angezeigt werden, aber nur 16 vorhanden sind.

D.h., du musst das von vorneherein mit einkalkulieren oder lügst den User an und er kommt dann auf die letzte Seite, so wie man es von Google kennt.

Jetzt kannst du dir mal Gedanken machen :)
*Thema weitergeb und Feierabend mach*
 
Zurück