Indexfrage

Status
Nicht offen für weitere Antworten.

EOB

Top Contributor
hi, sorry, wenn der titel nicht eindeutig ist...mir fiel nix besseres ein. ich hab folgendes problem. ist zwar aus einer webanwendung, aber mir gehts nur ums prinzip. ich starte eine suchanfrage an eine datenbank. die liefert mir dann zum beispiel 1000 treffer zurueck.

diese moechte ich so darstellen, dass jeweils 15 treffer auf einer seite dargestellt werden sollen. die restlichen treffer kann man dann mittels das klicken auf zahlen (links) erreichen. also so wie bei google im prinzip. seite 1 hat treffer von 1-15 seite 2 hat treffer von 16 bis 30 und so weiter, bis keine treffer mehr da sind.

so weit so gut. in der suchanfrage befindet sich ein index, der anzeigt, ab welchem treffer angezeigt werden soll. ist der index zum beispiel 5, wird ab dem 5ten treffer die 14 folgenden angezeigt und so weiter.

mein problem ist jetzt, dass ich eben diese zahlen darstellen soll, die die verschiedenen seiten mit je 15 treffern darstellen. das problem ist, dass wenn ich mit zb index 8 die treffer vom 8ten an anzeige, ich ja wissen muss, ob ich auf seite 1 oder seite 2 etc bin. ist der index zb. 18, bin ich auf seite 2 und muss treffer 16 bis 30 anzeigen.

wie stelle ich am besten fest, wo ich grad bin? ihr wisst, was ich meine?

danke:)
 

EOB

Top Contributor
hi, mal am beispiel von 18. vorher war der index 8, es werden also 15 treffer ab dem 8ten (inkl. 8ten) treffer angezeigt und wir befinden uns auf seite 1, da 8<16. jetzt ist der index 18. dann wuerde ich ja laut rechnung bei treffer 19 anfangen. ich muss aber auf seite 2 und treffer 16 bis 30 anzeigen, da 18>16 und 18<30 ist.


mal die html seite als grobuebersicht. das waere seite 1 mit 15 treffern und eben hier im beispiel 10 suchseiten mit ebenfalls 15 treffern. alle indizes, die kleiner als 16 sind, wuerden nix veraendern.



1 2 3 4 5 6 7 8 9 10

treffer1
treffer2
.
.
.
treffer15



jetzt ist der index sagen wir mal 18, ich muss also zur 2ten trefferseite wechslen und das layout updaten


1 2 3 4 5 6 7 8 9 10

treffer16
treffer17
.
.
.
treffer30



die zahlen oben 1...10 oder speater 2...11 muessen aber eben die richtigen links dahinter haben. also die 2 muss bei index 16 beginnen, die 3 bei index 31 und so weiter. oder hab ich ne lange leitung?

danke:)
 

Leroy42

Top Contributor
Mørketid hat gesagt.:
jetzt ist der index sagen wir mal 18, ich muss also zur 2ten trefferseite wechslen und das layout updaten


1 2 3 4 5 6 7 8 9 10

treffer16
treffer17
.
.
.
treffer30

...also die 2 muss bei index 16 beginnen, die 3 bei index 31 und so weiter.

Das ist doch genau was ich berechne:
Code:
int von = (index/15)*15 + 1;
int bis = von + 15 - 1;

von = (18/15)*15+1 = 1*15 + 1 = 16
bis = von + 15 -1 = 16+14 = 30

Also liegt der Index 18 auf der Seite die die Indizes 16 bis 30 anzeigt.
 

yajp

Mitglied
Hallo, ich hab etwas ähnliches mal so gelöst:

alle Results in einen Vector (data)
ein Vector (view), der nur die anzuzeigenden Daten enthält

Berechnen der Anzahl der Seiten (Datensätze / anzuzeigende Menge , evtl. letzte Seite mit den übrigen Daten, also keine ganze volle Seite mehr)
anhand der gewünschten Seitenzahl ermitteln welcher DS als erster im Vector liegen muss.
Dieser ist dann der erste Eintrag im Vector view , die noch fehlenden Daten aus Vector data einlesen
und anschliessend anzeigen.

Ich hoffe ich konnte Dir helfen, bzw. das ganze einigermassen verständlich 'rüberbringen'

Grüsse
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben