| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: ORDER BY date und Seiten im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi :D Ich habe ein Script welches aus der Tabelle messages Einträge ausliest. Bis jetzt ist der Befehl: PHP-Code: ...
![]() |
| | #1 (permalink) |
| ORDER BY date und Seiten Anzeige Hi :D Ich habe ein Script welches aus der Tabelle messages Einträge ausliest. Bis jetzt ist der Befehl: PHP-Code: Also muss ich ein ORDER BY date DESC hinzufügen. Aber dann kann ich nicht mehr ID > $from schreiben, da die neueren ja eine höhere ID haben.($from beträgt $persite*Seite, $persite in dem fall 25). Wie bekomme ich das hin? Gibt es etwas sowas wie einen SKIP befehl, der dann "$from" einträge überspringt? ?( MfG
__________________ Be the source always with you. | |
| | |
| | #2 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 52 | Code: <?php $link->query("SELECT * FROM messages WHERE ID > $from ORDER by date desc LIMIT $persite"); ?> |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Weshalb genau kannst Du das nicht schreiben? Order By wird afaik erst zum Schluss auf das Ergebnis angewendet. Sollte also eigntlich nicht das Problem sein: Für Wen Geht Susi Heute Ohne Slip? FROM, WHERE, GROUP BY, SELECT (1), HAVING, ORDER BY, SELECT (2) ![]() http://www.ict4us.com/r.kuijt/de_sql.htm
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 52 | also zumindest bei meinem mysql-testserver kann das limit auch nach dem order by stehen, also die variante die ich gepostet habe läuft bei mir. setze ich dagegen das order by ganz ans ende (so wie ich das bei cdw verstanden habe) bekomme ich eine fehlermeldung |
| | |
| | #5 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | @lightsaver: weil LIMIT nicht zum SQL-Standard gehört ? Ich meinte allerdings, warum die erste Variante (um order by ergänzt) nicht funktionieren sollte.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #6 (permalink) |
| Themenstarter | Ja das ist schon richtig aber das problem ist, das die neueren einträge eine Höhere id haben. Quasi: Vor 2 monaten: ID 0-50 Heute: ID 500-550 so und wenn ich das jetzt mit seiten mache und WHERE ID > SEITE*25 dann zeigt der mir auf den letzten seiten die aktuellsten einträge an. Ich will die aktuellen jedoch auf den ersten seiten und nicht auf den letzten. Quasi würde ja gehen SELECT * FROM messages ORDER by date desc LIMIT 25 Aber wie bekomme ich dann die seiten hin?
__________________ Be the source always with you. |
| | |
| | #7 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Ach so, dann könntest Du ja mal SELECT * FROM messages ORDER by date desc LIMIT seite*25,seite*25+25 (also als Auswahl - von, bis ) probieren. Wobei man die Seitenzählung dann bei 0 anfangen sollte.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #8 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 52 | also so wirklich verstehen was du willst tu ich nicht. wenn die ids an sich auch schon die zeitliche abfolge wiederspiegeln, dann reicht doch das was du gemacht hast, wobei du date und id auch austauschen könntest. damit werden dann sozusagen erstmal alle einträge absteigend gewählt, also neueste zuerst, und dann nur 25 an dich zurückgegeben. oder willst du alle einträge haben, aber diese dann auf seiten verteilen, also seite 1 sind einträge 1-25, seite 2 26-50... wobei 1 der jüngste eintrag ist? dann würde das immernoch so gehen wie du mitlerweile schon geschrieben hast, nur dass du dann noch ein offset beim limit mit übergeben musst. dadurch sagst du, dass du 25 haben willst, aber erst bei eintrag 151 starten willst (als beispiel). |
| | |
| | #9 (permalink) | |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 52 | Zitat:
| |
| | |
| | #10 (permalink) |
| Themenstarter | oder willst du alle einträge haben, aber diese dann auf seiten verteilen, also seite 1 sind einträge 1-25, seite 2 26-50... wobei 1 der jüngste eintrag ist? dann würde das immernoch so gehen wie du mitlerweile schon geschrieben hast, nur dass du dann noch ein offset beim limit mit übergeben musst. dadurch sagst du, dass du 25 haben willst, aber erst bei eintrag 151 starten willst (als beispiel). Genau! Der erst angezeigte Eintrag soll der jüngste sein. Aber wie mach ich das als SQL-Befehl? weil je höher die ID desso neuer(die ID wird autom. erhöht)
__________________ Be the source always with you. |
| | |
| | #11 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 52 | also langsam komm ich mir von dir ziemlich verarscht vor! du hast von cdw die lösung gesagt bekommen (mit kleiner korrektur von mir) und solltest diese vielleicht einfach mal umsetzen. |
| | |
| | #12 (permalink) |
| Moderator ![]() | AlterHacker: Vergiss die ID und das damit verbundene WHERE-Gewurschtel bei dir. Das ist nur Ersatz dafür, LIMIT mit 2 Parametern zu verwenden wie's CDW vorgeschlagen hat. Ich schätze, hier liegt dein Denkfehler. Sortiere deine Einträge nach Datum (wenn du kein entsprechendes Feld in der Tabelle hast eben nach der ID) und gib dann mit LIMIT an, welche Seite der Ergebnisse du haben willst. Nochmal zum Mitschreiben und mit den von dir bereits definierten Variablen im Eingangsbeitrag: Code: SELECT * FROM messages ORDER BY id LIMIT $from, $persite |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| HITCH - Der Date Doctor | TIMBA | Music- & Filmbox | 1 | 19.08.07 13:14 |
| ORDER BY Zahlenwert... | TeeKayo2 | (Web-) Design und webbasierte Sprachen | 4 | 26.07.06 18:05 |
| web to date | Itchy | (Web-) Design und webbasierte Sprachen | 0 | 10.11.03 11:12 |