Hallo, ich habe hier folgendes Problem:
damit ich auf meiner Seite beim Auslesen der MySQL-Datenbank nicht auf einer Seite dann 2000 Ergebnisse oder sowas in der Art habe, habe ich mir ein Script zusammengebastelt, was das Ergebnis auf mehrere "Seiten" aufteilt. Um genau zu sein, wird nichts anderes gemacht, als dass beim ersten aufruf der Seite die Inhalten 1-10, beim zweiten Aufruf die Inhalten 11-20 usw.. ausgegeben werden. Um zu den einzelnen "Seiten" zu navigieren, habe ich eine dynamische Navi für die Seiten gemacht. Doch man kann sichs vorstellen, nun habe ich unten dafür dann zig Navi-Links auf die einzelnen Seiten, denn es wird ja jede Seite einmal dort verlinkt. Wie kann ich nun folgendes erreichen?
Beim ersten Aufruf (="Seite 1") soll unten lediglich die Navi für Seite 1-5 erscheinen, wenn ich dann auf 2 klicke, soll die Navi für 2-6 erscheinen, bei 3 für 3-7 usw.. Hat da jemand eine gute idee, denn ich komm da irgendwie nicht so richtig weiter.
hier mein bisheriger code:
danke für jede hilfe!
damit ich auf meiner Seite beim Auslesen der MySQL-Datenbank nicht auf einer Seite dann 2000 Ergebnisse oder sowas in der Art habe, habe ich mir ein Script zusammengebastelt, was das Ergebnis auf mehrere "Seiten" aufteilt. Um genau zu sein, wird nichts anderes gemacht, als dass beim ersten aufruf der Seite die Inhalten 1-10, beim zweiten Aufruf die Inhalten 11-20 usw.. ausgegeben werden. Um zu den einzelnen "Seiten" zu navigieren, habe ich eine dynamische Navi für die Seiten gemacht. Doch man kann sichs vorstellen, nun habe ich unten dafür dann zig Navi-Links auf die einzelnen Seiten, denn es wird ja jede Seite einmal dort verlinkt. Wie kann ich nun folgendes erreichen?
Beim ersten Aufruf (="Seite 1") soll unten lediglich die Navi für Seite 1-5 erscheinen, wenn ich dann auf 2 klicke, soll die Navi für 2-6 erscheinen, bei 3 für 3-7 usw.. Hat da jemand eine gute idee, denn ich komm da irgendwie nicht so richtig weiter.
hier mein bisheriger code:
PHP-Code:
<?php
// Ergebnisse auf einer Seite
$ergproseite = 4; /*--> Es sollen immer 4 Ergebnisse aus der DB auf einer Seite ausgegeben werden*/
if($_GET['startid']) :
$abeintrag = $_GET['pageid']; /*--> Sofern die Seite nicht die erste Seite ist (erster Aufruf)
wird mit $_GET eine id abgerufen, die ich dem SQL-Befehl "LIMIT" übergebe, damit dieser dann
die Datenbank ab dieser id und somit in der Datenbank der Betreffenden Reihe weiter ausliest
(woher die startid kommt, sieht man unten!)*/
else :
$abeintrag = 0; /*--> Falls die Seite zum ersten mal aufgerufen wird, dann wird standardmäßig
diese Variable auf 0 gesetzt, was dann somit nichts anderes bedeutet, als dass ab dem ersten
Eintrag ausgelesen wird*/
endif;
$num = mysql_num_rows(mysql_query("SELECT * FROM `database`"));
$anzseiten = ceil($num/$ergproseite); /*--> Hier wird bestimmt
wieviele Seiten ich insgesamt brauchen werde, zur Sicherheit dass
nicht 4.25 Seiten rauskommen wird aufgerundet*/
$sql = "SELECT * FROM `database` LIMIT $abeintrag,$ergproseite"; /*--> Hier wird nun die Datenbank
ausgelesen, $abeintrag und $ergproseite geben genau an, von wo bis wo in der DB ausgelesen werden soll*/
$result = mysql_query($sql);
if(mysql_num_rows($result_gal)) :
while($row = mysql_fetch_assoc($result_gal)) :
// HIER IST DANN DIE AUSGABE DES INHALTS //
endwhile;
// HIER SOLL JETZT DIE SEITENNAVIGATION FOLGEN //
for($i=0; $i<$anzseiten; $i++) :
echo '[ <a href="datei.php?startid='.$i*$ergproseite.'">'.($i+1).'</a> ] ';
endfor; //--> hier sieht man nun wo die startid her kommt,
ich übergebe da einfach per url genau die Zahl, wo nachher dann
auf der nächsten Seite mit dem Auslesen der DB ausgelesen
werden soll
endif;
?>
Kommentar