LIMIT funktioniert net korrekt. Oder was mach ich Falsch
Eike
- php
0 Johannes Zeller0 Eike
Moin,
Ich versuche schon länger mir alle ergebnisse von 3-5 auszugeben was nicht klappt. ORDER by ID LIMIT 0,2 geht ohne probleme. Er gibt mir zwei ergebnisse aus.
Wenn ich allerdings ORDER by ID LIMIT 3,5 angebe gibt er mir 4 ergebnisse aus! Warum wei ich net. Wenn ich eingebe ORDER by ID LIMIT 5,3 gibt er mir korrekt 2 aus.
Aber logisch betrachtet ist das ja komisch.
Aber bei ORDER by ID LIMIT 7,5 gehts wieder überhauptnicht.
So kann ich nicht arbeiten.
Denn die zahlen werden in einer variablen gespeichert.
Aber ich hab es auch schon ohne Variablen versucht, also wie oben.
Hallo Eike,
Ich versuche schon länger mir alle ergebnisse von 3-5 auszugeben was nicht klappt. ORDER by ID LIMIT 0,2 geht ohne probleme. Er gibt mir zwei ergebnisse aus.
Wenn ich allerdings ORDER by ID LIMIT 3,5 angebe gibt er mir 4 ergebnisse aus! Warum wei ich net. Wenn ich eingebe ORDER by ID LIMIT 5,3 gibt er mir korrekt 2 aus.
Aber logisch betrachtet ist das ja komisch.
Nein:
»With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1)«
(http://dev.mysql.com/doc/mysql/en/SELECT.html)
Du möchtest also LIMIT 3,2 verwenden.
Schöne Grüße,
Johannes
Ehhm joa
Ich hab das dann wohl falsch verstanden!
ich dachte LIMIT 3,5 heißt ab dem dritten bis zum fünften.
Aber das müsste ja korrekt ab dem dritten fünf weitere heißen.
Danke vielmals. Auch wenn die Probleme dadurch nicht geringer werden.
weil so wie ich das dachte konnte ich das supi mir den variablen machen!
So nicht mehr. Aber ich werde das schon hinbekommen. MfG Eike
Hallo Eike,
Ich hab das dann wohl falsch verstanden!
ich dachte LIMIT 3,5 heißt ab dem dritten bis zum fünften.
Aber das müsste ja korrekt ab dem dritten fünf weitere heißen.Danke vielmals. Auch wenn die Probleme dadurch nicht geringer werden.
weil so wie ich das dachte konnte ich das supi mir den variablen machen!
So nicht mehr.
Wieso, wo ist denn das Problem?
Statt "...LIMIT $a,$b" nimmst du einfach "...Limit $a".($b-$a)
Schöne Grüße,
Johannes
hi,
Statt "...LIMIT $a,$b" nimmst du einfach "...Limit $a".($b-$a)
wozu das denn?
du hast es doch selbst zitiert, der erste wert ist der offset, und der zweite das maximum zurückzuliefernder zeilen.
also sollte der zweite wert eigentlich konstant bleiben, wenn man eine blätterfunktion mit b datensätzen pro seite erstellen will.
$a = 0, $b = 10 -> ergibt die ersten zehn datensätze
$a = 10, $b = 10 -> ergibt die nächsten zehn datensätze
...
gruß,
wahsaga
Hallo wahsaga,
also sollte der zweite wert eigentlich konstant bleiben, wenn man eine blätterfunktion mit b datensätzen pro seite erstellen will.
Habe ich irgendetwas übersehen? Eike hat meines Wissens nicht gesagt, wofür sie den Query brauch. Ebenso gut kann es doch sein, dass in ihrem Anwendungsfall das Offset auch variable ist.
Schöne Grüße,
Johannes