SQL Abfrage mit Blaetterfunktion
-
Unix-Tom schrieb:
Die Zahlen musst du selbst ausgeben. Nennt sich paging.
Kannst ja mal google bemühen ob du was fertiges findest.Das Stichwort "paging" wurde bereits genannt.
Unix-Tom schrieb:
Solltest Du MSSQL haben dann hast DU das Problem da MSSQL kein LIMIT ab ROWS X zurückgeben kann.
Dann muß er das Paging halt mit reinem SQL realisieren.
-
du hast doch in
$start = $_REQUEST['start'];
die Seite, die Zur Zeit angeschaut wird. Vergleich diese doch einfach in der for schleife...
if("seitenzahl" = $start) { echo"== $zahlzahlenreihe =="; } else { echo"$zahlzahlenreihe"; }
hoffe das hilft dir weiter - MfG Reen
Moderiert von árn[y]ék:
Bitte PHP-Tags verwenden, die gibt's nicht ohne Grund ...
-
schmidt-webdesign.net schrieb:
Unix-Tom schrieb:
Die Zahlen musst du selbst ausgeben. Nennt sich paging.
Kannst ja mal google bemühen ob du was fertiges findest.Das Stichwort "paging" wurde bereits genannt.
Kann sein aber in der Früh waren eure Postings noch nicht drin.
-
Guten Abend...
Vorab bedanke ich mich erstmal für die gebotenen Tipps.
Entschuldigung für die Sache mit den Tags und danke dass sie nachträglich eingebaut wurden.Wie ersichtlich ist, benutze ich im SELECT-Befehl das Atribbut LIMIT. Auch die Variable start wird abgefragt. Mein Problem liegt bei der Ausgabe der Zahlen...... (Nicht im SQL-Part)
Das Script benötigt noch eine Schleife in der Ausgabe-Schleife der Zahlen.
Ich habe momentan sehr wenig Zeit, mich darum zu kümmern und hoffe auf einen Denk-Anstoß.
==>Eisbeer<==
-
Was du braucht ist die Anzahl. Braucht also 2 Querys.
Einmal mit Count und einmal mit LIMIT.Wenn du die Anzahl weißt sollte die schleife kein Problem sein.
-
Unix-Tom schrieb:
Was du braucht ist die Anzahl. Braucht also 2 Querys.
Einmal mit Count und einmal mit LIMIT.LIMIT braucht's nun wirklich nicht (es gehört ohnehin nicht zu Standard-ɛskjuːˈɛl).
-
Ich habe 2 querys einmal die Anzahl aller Ergebnisse und einmal die zu holenden Datensätze.
UNIX-Tom hat´s erkannt: Ich habe nur das Problem, dass meine Schleife bis jetzt ALLE Ergebnisse in einer Reihe anzeigt. (Ich meine nur die Seitenzahlen).
Genau hier liegt der Hase begraben...
$anzahl_der_seiten = $anzahl_gesamt / $anzahl_ergebnisse;
==>Eisbeer<==
-
Wie Du HTML erzeugst brauche ich ja nicht zu erklären.
Du hast also die Anzahl ROWS.
Durch LIMIT nun auch eine Begrenzte Ergebnismenge.Sie Dir den LIMIT nochmals an. Dort kann mann nicht nur angeben wieviele ROWS sondern auch ab wann beginnend.
Also LIMIT 100,50
Die Anzahl Zeilen pro Seite sollte Dir bekannt sein.Gesamtrows/PROSEITE = Anzahl Seiten
Du schreibst die ersten ROWS ins HTML an den Client.
Unten dann Ausgabe einer Tabelle,CSS oder was auch immer für die einzelnen Zahlen.
Die Zahlen sind Links denen Du die Seite übergibst.
Angenommen 10 Zeilen Pro Seite
Bei Limit dann immer
LIMIT 1,10
LIMIT 11,10
LIMIT 21,10u.s.w.
Kenne Deine DB und die Anzahl GESAMTROWS nicht aber manchmal ist es besser nicht LIMIT zu verwenden.http://dev.mysql.com/doc/refman/5.1/de/limit-optimization.html
Andere RDBMS habe kein LIMIT. MSSQL ist es TOP ohne Offset wobei man aber den Offset wiederum simulieren kann.
-
Hallo,
ich habe den Code folgender Maßen abgeändert:
/////////////////////////// echo'<div id="text_zentriert">'."\n"; $anzahl_der_seiten = $anzahl_gesamt / $anzahl_ergebnisse; //$anzahl_der_seiten = number_format("$anzahl_der_seiten", 0, ',', '.'); //$anzahl_der_seiten Formatieren $anzahl_der_seiten = ceil("$anzahl_der_seiten"); //Aufrunden if($start >1) { $zahlzurueck = $start - $anzahl_ergebnisse; echo'<a href="'.$_SESSION['MyURL'].'/php/fitness.php5?start='."$zahlzurueck".'"><<</a>'."\n"; } for($zahlzahlenreihe=$start-5;$zahlzahlenreihe<=$start+5; $zahlzahlenreihe++) { if($zahlzahlenreihe >0 && $zahlzahlenreihe <= $anzahl_der_seiten) { if("$start" == "$zahlzahlenreihe") { echo'<span id="text_weiss">'."$zahlzahlenreihe".'</span>'."\n"; } else { echo'<a href="'.$_SESSION['MyURL'].'/php/fitness.php5?start='."$zahlzahlenreihe".'">'."$zahlzahlenreihe".'</a>'."\n"; } } } if($zahlzahlenreihe <=$anzahl_der_seiten) { $zahlvor = $start + $anzahl_ergebnisse; echo'<a href="'.$_SESSION['MyURL'].'/php/fitness.php5?start='."$zahlvor".'">>></a>'."\n"; } echo'</div><p>'."\n"; ///////////////////////////
Wie bekomme ich nun immer 10 Seitenzahlen angezeigt ? (z.B. 1-10)
==>Eisbeer<==
-
wie viele lösungen willst denn noch? scheinbar biste zu blöd sie umzusetzen!!!