Paging->mitte ermitteln

tach community,

ich habe mir ein paging gebastelt, welches moeglichst variable
sein soll. so hat der user die moeglichkeit die angezeigten datensaetze UND den einstiegspunkt zu waehlen. letzteres macht mir gerade kopfzerbrechen.

bei 9000 datensaetzen moechte ich dem nutzer die moeglichkeit geben
zum beispiel eine zahl wie 5342 einzugeben um dann den entsprechenden datensatz zu sehen.
allerdings moechte ich dass der angezeigte datensatz immer in der MITTE des angezeigten fensters steht.

Beispiele:

es werden 10 Datensaetze angezeigt->nach DS 35 wurde gesucht.
angezeigt wird:


30
31
32
33
34
->35
36
37
38
39

es werden 5 DS angezeigt. User sucht nach 22

20
21
->22
23
24

wie ermittel ich praktisch die mitte …
die daten werden aus einer mySQL datenbank via PHP4
gelesen. ich machs mir glaub ich zu kompliziert.

danke.

grusz

Pixel

tach Pixel :smile:

sind die Datensätze von 1 - 9000 durchgehend numeriert ?
Wenn ja ist es kein Problem

SELECT `bla` FROM `bla` WHERE `numerierung` \> $\_POST['suche']-5 LIMIT 0,10

Wenn die Datensätze nicht durchnumeriert sind

SELECT `bla` FROM `bla` LIMIT ((SELECT count(id) FROM `bla` WHERE `numerierung` 

ist jetzt allerdings ungetestet sollte aber irgendwie so klappen musst du vielleicht noch nen bißchen rumpfeilen :smile:

schönen feierabend :smile:

Gruß
Phillip


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

tach Pixel :smile:

sind die Datensätze von 1 - 9000 durchgehend numeriert ?
Wenn ja ist es kein Problem

SELECT bla FROM bla WHERE numerierung >
$_POST[‚suche‘]-5 LIMIT 0,10

Wenn die Datensätze nicht durchnumeriert sind

SELECT bla FROM bla LIMIT ((SELECT count(id) FROM bla
WHERE numerierung

ist jetzt allerdings ungetestet sollte aber irgendwie so
klappen musst du vielleicht noch nen bißchen rumpfeilen :smile:

Das solltest Du ihm aber wohl erläutern.

Hier _SELECT bla FROM bla WHERE numerierung > $_POST[‚suche‘]-5 LIMIT 0,10

Beispiel Eingabe 8500

Ausgabe Datensätze
8495 - 8505

Ich würde aber eher LIMIT 11 nehmen um dann auch eine Mitte zu haben.

oder gar 3 Selects

Beispiel 11 Einträgen (6 Mittig)
// Oben
SELECT bla FROM bla WHERE numerierung > $_POST[‚suche‘]-5 LIMIT 0,5
// Mitte :smile:
SELECT bla FROM bla WHERE numerierung = $_POST[‚suche‘] LIMIT 0,1
// Unten
SELECT bla FROM bla WHERE numerierung > $_POST[‚suche‘]+1 LIMIT 0,5_

tach

Das solltest Du ihm aber wohl erläutern.

Hier SELECT bla FROM bla WHERE numerierung >
$_POST[‚suche‘]-5 LIMIT 0,10

vielleicht sollte ich erwaehnen , dass die anzahl der
angezeigten datensaetze variable und mir unbekannt ist…
weil das kann der user steuern. es muessen also nicht
immer elf oder zehn sein…

grusz

pixel

Ums einfach zu machen

$anzahl = ($_POST[‚anzahlausgabe‘])-1;

$haelfte = (int) ($anzahl / 2);

// Wegen übergabe an SQL , nur nummern zulassen.
$suche = preg_replace("\D","",$_POST[‚suche‘]);

$oben = $suche - ($anzahl-$haelfte);
$mitte = $suche;
$unten = $suche+1;
$oende = ($anzahl-$haelfte);
$uende = $haelfte;
// Oben
SELECT bla FROM bla WHERE numerierung > $oben LIMIT 0,$oende
// Mitte :smile:
SELECT bla FROM bla WHERE numerierung = $mitte LIMIT 0,1
// Unten
SELECT bla FROM bla WHERE numerierung > $unten LIMIT 0,$uende

ergebnis
ist dann bei
2500 und 5

2498
2499

2500

2501
2502

und bei
2500 und 6

2497
2498
2499

2500

2501
2502

Hallo Rakon,

3 Abfragen halte ich für unsinig dann muss man ja alles 3 mal machen

ob nun Limit bla,10 oder bla,20 das ist für das funktionieren des scripts erst mal uninteressant

Gruß
Phillip

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rakon,

3 Abfragen halte ich für unsinig dann muss man ja alles 3 mal
machen

Stimmt, hab ich was anderes behauptet

ob nun Limit bla,10 oder bla,20 das ist für das funktionieren
des scripts erst mal uninteressant

Du bist echt wie so ein zikkiges kleines Mädchen oder Bub.
Habe ich irgentwo behauptet das dein Script nicht funktioniert ,
aber es wird nur ein Profi wirklich schlau daraus, bzw einer der es schon weiss wie es geht.

Also du kleine Zikke , lesen , antworten, und bitte nicht irgentwelche Behauptungen mir unterstellen.

Danke das du dich so angegriffen fühlst.
Aber ich bin nicht dein Therapeut.
Psycho probleme und Halluzinationen bitte woanders.

Hallo Rakon,
3 Abfragen halte ich für unsinig dann muss man ja alles 3 mal
machen

Stimmt, hab ich was anderes behauptet

ob nun Limit bla,10 oder bla,20 das ist für das funktionieren
des scripts erst mal uninteressant

Du bist echt wie so ein zikkiges kleines Mädchen oder Bub.

gleichfalls

Habe ich irgentwo behauptet das dein Script nicht funktioniert
aber es wird nur ein Profi wirklich schlau daraus, bzw einer
der es schon weiss wie es geht.

Sry das ich jemanden der Schon mehrmals hier gepostet hat und Fragen zur OOP und anderen Sachen gestellt hat die zumindestens ein größeres Grundwissen vorraussetzen als echo (‚blabla‘); für schlau genug gehalten habe das er wenn er mit einer antwort nicht klar kommt dazu noch fragen stellen kann bzw die antwort so ummodeln kann das sie auf sein Problem hin funktioniert

Also du kleine Zikke , lesen , antworten, und bitte nicht

bist du sicher das das alter in deiner vika stimmt?
von deiner antwort her hätte ich dich eher auf 14 - 15 schätzen

irgentwelche Behauptungen mir unterstellen.
Danke das du dich so angegriffen fühlst.

Ich denke mal angegriffen gefühlt hast maximal du dich ich habe nur zu fragen von dir auf meine antwort geantwortet.

Aber ich bin nicht dein Therapeut.
Psycho probleme und Halluzinationen bitte woanders.

Wer hier psychologische probleme hat bleibt mal dahin gestellt.

Hallo,

tach community,

ich habe mir ein paging gebastelt, welches moeglichst variable
sein soll. so hat der user die moeglichkeit die angezeigten
datensaetze UND den einstiegspunkt zu waehlen. letzteres macht
mir gerade kopfzerbrechen.

bei 9000 datensaetzen moechte ich dem nutzer die moeglichkeit
geben
zum beispiel eine zahl wie 5342 einzugeben um dann den
entsprechenden datensatz zu sehen.
allerdings moechte ich dass der angezeigte datensatz immer in
der MITTE des angezeigten fensters steht.

Wenn du mit LIMIT start, anzahl arbeitest, musst du doch nur
LIMIT „.$start-floor($anzahl/2).“,".$anzahl verwenden und eben $start hervorheben, um die DS von start-anzahl/2 bis start+anzahl/2 anzuzeigen. Oder habe ich das falsch verstanden ?

Alexander