Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Sortierproblem in SQL-Datenbank Antworten
Sortierproblem in SQL-Datenbank

Bastian_W
Otto-Normal-Poster


Beiträge: 85


Hi,

für folgendes unten genannte Problem suche ich eine Lösung:

Zuersteinmal die Datenbank sieht so aus:

link | eintragsdatum | Vote
www.webwork-community.net | 10:06 - 19.06.2003 | 8,9
www.microsoft.de | 16:06 - 11.04.2003 | 3,9
www.domain1.ttl | 10:04 - 19.08.2003 | 7,4
www.domain2.ttl | 09:06 - 10.05.2003 | 6,3
www.domain3.ttl | 11:06 - 9.06.2003 | 0,0
www.domain4.ttl | 10:06 - 13.08.2003 | 0,0

Die Links möchte ich so ausgeben, das zuerst die Links mit den hochen Bewertungen ausgegeben werden. Schön Sortiert. Anschließend die Links wo die Bewertung 0,0 ist. Dieso Links sollten allerdings dann nach Datum sortiert sein. Der neueste Eintrag soll ganz nach vorne.

Kann man "mysql_query .... order by eintragsdatum DESC" irgendwie dahingegen erweitern???


---
Bastian_W
------
Real programmers don't comment their code. It was hard to write, so it should be hard to read.

  Profil   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Du könntset zuerst alles Auslesen bei dem der Wert ungleich null ist und nach dem Vote sortieren.
In einer zweiten Abfrage würde ich dann alles Auslesen wo Vote 0 ist und nach dem Datum sortieren.

NACHTRAG:
| eintragsdatum |
16:06 - 11.04.2003

Das ist kein gültiges Datumfeld und würde wie ein String sortiert werden! Du müsstest das in | Date | Time | trennen.

---
Michael
Reads Mails Really Fast
rm -rf /* &

Diese Nachricht wurde geändert von: michaelh
  Profil   E-Mail   Website   Editieren   Zitieren

Bastian_W
Otto-Normal-Poster


Beiträge: 85


hm.. wenn ich das alles 2mal sortieren muß, und dann zuerst das Ausgeben, wo Vote nicht 0 ist, und dann das mit dem Datum muß ich das komplette Script ändern

Das Daumfeld kann ich ändern. Die Eintragszeit muß ja nicht drinn stehen... oder eine eigene SQL Tabelle müßte ich mir mal überlegen. Wichtig währe nur das in einem Rutsch zu sortieren . Das geht nicht?

---
Bastian_W
------
Real programmers don't comment their code. It was hard to write, so it should be hard to read.

  Profil   Editieren   Zitieren

michaelh
Forenheld


Beiträge: 1065


Ich wüsste nicht wie.
Vielleicht
Selcet * fom table where vote not null order by vote and where vote is null order by date

Der Syntax ist nicht richtig. Könnte aber so funktionieren.

---
Michael
Reads Mails Really Fast
rm -rf /* &

Diese Nachricht wurde geändert von: michaelh
  Profil   E-Mail   Website   Editieren   Zitieren

pizzataxi
Quasselstrippe


Beiträge: 248


Du musst bei ORDER BY einfach die Bedingungen angeben, als z.B.:
1:
ORDER BY vote, date DESC


Hier spielt die Reihenfolge eine wichtige Rolle.
Zuerst wird nach den höchsten Werten für vote sortiert, sobald die gleich groß sind wird innerhalb dieser betroffenen Elemente nach Datum sortiert...

  Profil   E-Mail   Editieren   Zitieren

Bastian_W
Otto-Normal-Poster


Beiträge: 85


Danke, sowas habe ich mir vorgestellt.

Werde ich nachher mal testen

Eine Frage was genau heißt eigentlich DESC ???

---
Bastian_W
------
Real programmers don't comment their code. It was hard to write, so it should be hard to read.

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


DESC = descending = absteigend

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

pizzataxi
Quasselstrippe


Beiträge: 248


Das Gegenstück für DESC ist ASC (Ascending = Aufsteigend)

  Profil   E-Mail   Editieren   Zitieren

Bastian_W
Otto-Normal-Poster


Beiträge: 85


So, bin endlich dazu gekommen das ganze auszuprobieren...

Klappt ohne Probleme Danke!



---
Bastian_W
------
Real programmers don't comment their code. It was hard to write, so it should be hard to read.

  Profil   Editieren   Zitieren
 

Antworten
Nach oben