Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit order-Funktion [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit order-Funktion


 
Thommy
25-01-2002, 21:27 
 
Hallo,

hab mal wieder ein Problem, und zwar:

lese ich Daten von Personen aus einer Tabelle aus und ordne die Ergebnisse nach dem Namen:

SELECT name, note FROM personen ORDER BY name WHERE ...

das funzt soweit auch ganz gut - nun aber meine Frage:

Das Feld Note enthält wie der Nam vermuten lässt Noten (von 1-10) Nun würde ich gerne unter den Suchergebnisse Plätze vergeben anhand des Kriteriums "Note".
Zum Beispiel : es werden 3 Personen gefunden (die Noten '5', '7', '3'). Derjenige mit der höchsten Note soll Platz 1 erhalten, der mit der niedrigsten bekommt (bei 3 Suchergebnissen) halt Platz 3.

Die Ausgabe sind dann folgendermassen aus:

Anton Note 5 Platz 2
Ernst Note 3 Platz 3
Zeppilin Note 7 Platz 7

Hat einer ne Idee, wies funzen könnte? :-(

 
Thommy
25-01-2002, 21:27 
 
upps Zeppelin hat natürlich Platz 1

 
deepthougt
26-01-2002, 16:02 
 
Hierzu noch Fragen:

1. Werden immer max. 3 Leute gelistet ?
2. Kann immer nur einer eine bestimmte Wertung erhalten (was ich mir nicht vorstellen kann) ?
3. Sollen mehrere Personen auf den jeweiligen Rängen angezeigt werden ?
4. Oder werden die Leute mit einem Punktesystem bewertet (z.b. jeder Klick ein Punkt oder mehrere usw.) und dann in verschiedene Stufen eingeordnet ?

Gruß
deep

 
Thommy
27-01-2002, 12:26 
 
Hi,

zu 1.
also die Anzahl der Leute ist nicht auf 3 beschränktund ist unterschiedlich von Rubrik zu Rubrik.
zu 2.
Die Wertung erfolgt in einem online-Vote-system(von 1-10)
zu3.
Mehrere Personen auf einem Rang ist möglich
zu4.
Frage hab ich leider nicht so richtig verstanden :-(
Vielleicht bringt dich Antwort 2 etwas weiter

Danke für die Mühen und Gruss

Thommy

 
deepthougt
27-01-2002, 12:39 
 
Hi,
wäre es Dir vielleicht möglich, mir einen Dump aus Deiner Voting-Tabelle per Mail zukommen zu lassen ? Ich werde Dir die Abfrage dann schnell zusammenstricken.

Gruß
Deep

 
iQD
27-01-2002, 20:08 
 
Hi!

SELECT name, note FROM personen ORDER BY name WHERE ...

Wieso ordnest du nach Namen, wenn die Sortierung eh nach den Noten erfolgen soll??


SELECT name, note FROM personen ORDER BY note WHERE ...

SELECT name, note FROM personen ORDER BY note, name WHERE ...

soriert zuerst nach Note und dann nach Name.
Z.B.
Joe 10
Alex 10
Maria 22

wird sortiert zu:
Maria 22
Alex 10
Joe 10

sollte dein Problem lösen.

Grüsse

[Editiert von iQD am 27-01-2002 um 20:19]

 
Thommy
27-01-2002, 21:15 
 
nee die Sortierung soll nicht nach note erfolgen, sondern alphabetisch nach namen.

wenn du 200 Person hast, und eine bestimmte Person suchst um zu sehen welchen Platz sie hat, suchste dich doch sonst verrückt

Gruss

Thommy

 
iQD
27-01-2002, 21:25 
 
Derjenige mit der höchsten Note soll Platz 1 erhalten, der mit der niedrigsten bekommt (bei 3 Suchergebnissen) halt Platz 3.

Die Ausgabe sind dann folgendermassen aus:

Anton Note 5 Platz 2
Ernst Note 3 Platz 3
Zeppilin Note 7 Platz 7

upps Zeppelin hat natürlich Platz 1

Derjenige mit der höchsten Note soll Platz 1 erhalten, der mit der niedrigsten bekommt (bei 3 Suchergebnissen) halt Platz 3.


Dies ist doch eine Sortierung nach Noten!?


[Editiert von iQD am 27-01-2002 um 21:28]

 
hand
27-01-2002, 21:25 
 
Wenn Du sozusagen die TOP10, sortiert nach Namen haben willst, dann nimm das Ergebnis von iQD schreib es in einen Array und gib den Array sortiert aus.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:58 Uhr.