Endlich das Thema liegt mir auch noch im Magen.
Deswegen wäre mir eine Antwort auch sehr recht.
Hallo TP'ler,
habe in der Suche leider nichts gefunden.
Habe folgendes Problem:
Habe eine BildDB und lasse mir dort mit limit die gefundenen Datensätze auf mehreren Seiten anzeigen, funzt auch alles!
Jetzt möchte ich aber, dass mir in meiner Navigation nicht alle Seiten auf einmal angezeigt werden, sondern wenn ich z.B. 50 ergebnisseiten habe, dann sollen nur erstmal 10 Seiten angezeigt werden (wie man das von Google kennt).
Seitenzahlennavi und dynamische Vor- und Zurück Buttons funzen, verstehe nur nicht, wie ich jetzt diese Seitenzahlen unterteile und dynamisch die nächsten einblende, sei es in Einer- oder Zehnerschritten!
Benutze Adagios Skript aus diesem Thread
Gruss
Chris
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Endlich das Thema liegt mir auch noch im Magen.
Deswegen wäre mir eine Antwort auch sehr recht.
Ich gehe mal davon aus, dass bei Deinem Kenntnistand ausreicht, die blanke Theorie aufzuführen:
- Du ermittelst die Gesamtzahl aller auszugebenen Datensätze (z.B. mit mysql_affected_rows())
- Diese Zahl teilst Du durch die gewünschte Zahl von Einträgen pro Seite; hier muss natürlich mit Modulo/Restwert (%) gearbeitet werden, damit bei nicht genau aufeghenden Divisionen der Rest auf die letzte Seite verteilt wird
- Dann kannst Du ganz einfach in einer Schleife die Links erzeugen lassen, die Werte für LIMIT ergeben sich ja aus obiger Rechnung
Ich habe da auch noch was passendes gegoogelt: http://www.php-center.de/artikel/blaettern.php3
Geändert von Lars (09.09.2002 um 10:43 Uhr)
Danke Lars,
aber die Seitenzahlennavi funzt, dass Problem bleibt aber!
Möchte, wenn ich z.B. ein Ergebnis mit 100 Seiten habe, dass erstmal nur 10 in der Navi angezeigt werden, beim weiterblättern sollen dann nach und nach die anderen Seiten dazu kommen.
Hoffe, dass ich es jetzt unmissverständlich ausgedrückt habe!
Erst:
100 Ergebnisseiten
1 2 3 4 5 6 7 8 9 10 >> >
Dann beim weiterblättern:
2 3 4 5 6 7 8 9 10 11 >> > usw...
Gruss
Chris
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Hallo Lars ich glaube du hast unsere Frage nicht ganz richtig verstanden. Wir haben bereits das Blätterscript und es funktioniert auch. Zum bessern Verständniss nochmal bei Bild.
Es gibt manchmal einfach zuviele Seitenzahlen wie bei mir hier:
![]()
Huch, da habe ich wohl was verpeilt ...
Eine Lösung habe ich ad hoc nicht auf Lager, aber vielleicht kommt mir die Erleuchtung ja noch.![]()
hier die erforderlichen Änderung für die Schleife "Seitenzahlen":
$cut_left=5; // Anzahl Seiten-Links links von aktueller Seite
$cut_right=5; // Anzahl Seiten-Links rechts von aktueller Seite
$a=1;
$a_end=$anz_pages;
if($anz_pages>($cut_left+$cut_right)) {
if($curr_page>$cut_left) $a=$curr_page-$cut_left;
if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
}
for($a;$a<=$a_end;$a++)
{
if($a != $curr_page)
{ ?> <a class="cmsnavi" href="../news/?limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a); ?></a><?php
}
else
{
echo " [".($a)."]";
}
}
Achtung:
nicht nur die Schleife selbst habe ich geändert, sondern auch
neue Variablen eingebaut. Die müssen nartürlich mitkopiert werden und dürfen noch nicht in Eurem Script existieren!
taratus
Vielen Dank bei mir klappt alles.
Genau das was ich schon lange gesucht habe.
Ja, auch bei mir funzt es einwandfrei!
Vielen Dank !
Gruss
Chris
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Auch ich habe den Dreh nun raus - Danke!![]()
Sorry, ist ja eigentlich schon erledigt, habe aber nun doch ein kleines Problem!
Und ich seh,wie immer, den Fehler nich.
Skript und Seitenanzeige funzen, aber irgendwo scheint es ein Rechenproblem zu geben. Auf der ersten Ergebnisseite werden die Klammern um Seite 1 nicht gesetzt, scheint ein Problem mit der if Abfrage zu sein und bei meinen beiden letzten Ergebnisseiten wird der Überhang falsch ausgerechnet bzw. falsch angezeigt.
Zur Verdeutlichung:
Habe 87 Datensätze auf 18 Seiten.
$eintraege=5
Bisher alles OK, navigier jedoch auf Seite 17, kriege ich nur 2 Einträge angezeigt und Seite 18 enthält gar keine Einträge.
Dazu wird auch noch der vor Button auf Seite 17 schon ausgeblendet.
Hier nochmal der Code:
$cut_left=1; // Anzahl Seiten-Links links von aktueller Seite
$cut_right=8; // Anzahl Seiten-Links rechts von aktueller Seite
$a=1;
$a_end=$anz_pages;
if($anz_pages>($cut_left+$cut_right)) {
if($curr_page>$cut_left) $a=$curr_page-$cut_left;
if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
}
for($a;$a<=$a_end;$a++)
{
if($a != $curr_page)
{ ?> <a class="cmsnavi" href="bildsuche.php?action=1<?php If ($suchort_auswahl != "") {echo"&suchort=".$suchort_auswahl;} ?><?php If ($suchthema_auswahl != "") {echo"&suchthema=".$suchthema_auswahl;} ?>&limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a); ?></a><?php
}
else
{
echo " [".($a)."]";
}
}?>
Hoffe, dass jemand den Fehler entdecken kann, ich kann den Fehler nicht finden!
Gruss
Chris
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Wo Chris es sagt bei mir ist es auch so.
Es muss wirklich am "$a" liegen. Zummal Seite 1 bei mir mit den Limit 10 (Einträge pro Seite) beginn anstatt bei 0 deswegen am Ende auch der Überhang.
@ Flixxtoras
Habe das Problem gelöst, bei mir funzt es jetzt auf jeden Fall!
Folgendes habe ich verändert:
<?php
$cut_left=1; // Anzahl Seiten-Links links von aktueller Seite
$cut_right=8; // Anzahl Seiten-Links rechts von aktueller Seite
$a=0;
$a_end=$anz_pages;
if($anz_pages>($cut_left+$cut_right)) {
if($curr_page>$cut_left) $a=$curr_page-$cut_left;
if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
}
for($a;$a<$a_end;$a++)
{
if($a != $curr_page)
{ ?> <a class="cmsnavi" href="bildsuche.php?action=1&limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a+1); ?></a><?php
}
else
{
echo " [".($a+1)."]";
}
}?>
$a fängt jetzt bei 0 an zu zählen!
Dann muss $a allerdings innerhalb if else jeweils plus 1 gesetzt werden!
Gruss
Chris
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Klappt hatt $a auch schon auf 0 gesetzt allerdings das mit $a +1 vergessen.
Trotzdem hab ich bei 115 Ergebnisseiten 116.
Die 116. Seite ist aber leer.
Zum visuellen Verständnis:
![]()
Dann solltest Du das $limit beim ersten Aufruf auf 0 setzen, z.B.:
<? If ($limit=="") { echo"<input type='hidden' name='limit' value='0'>";}
Danach hatte ich keinen Überhang mehr und auch keine leeren Seiten!
Check einfach mal, ob Deine Seite 1 bei limit 0 oder > anfängt!
Gruss
Chris
Gruss freefonzo
"Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
Sir Winston Churchill
1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)