Alt 15.03.2011, 16:39:45   #1 (permalink)
Erfahrener Benutzer
Benutzerbild von da_freak

ID: 233028
Lose-Remote

Reg: 22.06.2006
Beiträge: 737
da_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblick
Standard Ranking anhand von Abstimmungsergebnissen

Hallo,

ich bin soweit, dass ich meinen Usern ermögliche, dass die für einen Beitrag o.Ä. eine Bewertung in Form von 1-5 Punkten abzugeben. Das speicher ich ein einer solchen Tabelle:
id type typeID IP date val
1 content 1 ... ... 4
2 content 4 ... ... 3
3 content 2 ... ... 1
4 content 5 ... ... 2
5 content 1 ... ... 5
6 content 3 ... ... 3
7 content 3 ... ... 2
8 content 5 ... ... 5
9 content 1 ... ... 1

Ich denke mal IP und date sind hier zu vernachlässigen.

Was ich jetzt will, ist die id (bei gegebenem type) herausbekommen, die die höchste Durchschnittsbewertung hat. Und weils das ganze so schön ist, auch noch eine Art Top-X Ranking. Ich habe aber keine Ahnung wie ich ansetzen kann. Es würde mich freuen, wenn mir jemand einmal ein paar Stichworte an den Kopf werfen kann, damit ich es für's erste mal für mich versuchen kann.

Geändert von da_freak (15.03.2011 um 17:00:03 Uhr)
da_freak ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 15.03.2011, 17:36:49   #2 (permalink)
Streber
Benutzerbild von dahippi

ID: 10608
Lose-Remote

dahippi eine Nachricht über ICQ schicken
Reg: 21.08.2006
Beiträge: 516
dahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunftdahippi hat eine strahlende Zukunft
Standard

Zitat:
Zitat von da_freak Beitrag anzeigen
Es würde mich freuen, wenn mir jemand einmal ein paar Stichworte an den Kopf werfen kann
Wenn's weiter nichts ist:

Group By und AVG()
Order By
Limit

EDIT:

Zitat:
Zitat von da_freak Beitrag anzeigen
Was ich jetzt will, ist die id (bei gegebenem type) herausbekommen, die die höchste Durchschnittsbewertung hat
Möchtest du das wirklich oder meinst du die typeID?
Nach Ausdrücken der Gleichheit, welche dem Positiv entsprechen, verwendet man wie.
Nach Ungleichheiten hingegen, welche dem Komparativ entsprechen, wird als verwendet.

Richtig: Ich bin viel schlauer als du.
Falsch: Keiner von euch ist schlauer wie ich.

Quelle

Geändert von dahippi (15.03.2011 um 17:57:13 Uhr)
dahippi ist gerade online   Mit Zitat antworten
Alt 15.03.2011, 18:06:48   #3 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Jo, ID hat keine Durchschnittswertung; da isn irgendwo n Tippfehler.
Entweder ID mit höchster Wertung oder TypeID mit höchstem Durchschnitt.

Zum Thema Top-Liste: Das Zauberwort is da "Auto-JOIN".
Wie viele Datensätze haben eine Wertung größer-gleich des Top1-Datensatzes? Richtig, nur 1, nämlich der Top1-Datensatz selber.
Wie viele Datensätze haben eine Wertung größer-gleich des Top2-Datensatzes? Richtig, nur 2, nämlich der Top1-Datensatz und der Top2-Datensatz selber.
u.s.w.

Du erhältst das Ranking also im COUNT(*).
theHacker ist offline   Mit Zitat antworten
Alt 15.03.2011, 22:34:18   #4 (permalink)
Erfahrener Benutzer
Benutzerbild von da_freak

ID: 233028
Lose-Remote

Reg: 22.06.2006
Beiträge: 737
da_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblickda_freak ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dahippi Beitrag anzeigen

Möchtest du das wirklich oder meinst du die typeID?
Genau, die typeID natürlich :-) Die id an sich ist ja nicht sonderlich aussagekräftig.


Hab das dann auch mal gleich umgesetzt. Wenn man weiß was man benutzen muss, eigentlich ganz leicht. Tausend Dank ihr beiden!

edit: das was ich ursprünglich hier gepostet habe, funktionierte nur auf xampp. Musste die query leicht abändern:

SELECT typeid, AVG(val) AS avg, COUNT(ratings.id) AS count
FROM ratings
GROUP BY typeid
ORDER BY val DESC, id DESC
LIMIT 0,1

Geändert von da_freak (16.03.2011 um 00:50:21 Uhr)
da_freak ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche PR Ranking Styles für Ranking-King.de Money4Ad Lose4Graphics (erledigt) 24 10.11.2008 20:43:05
Grafikkartenfehler - Blau anhand von Bioshock resoucer Hardware 2 02.09.2007 10:18:18
Usermap erstellen anhand der PLZ? NudelMC Programmierung 2 06.03.2007 13:07:25
[S] Originallied anhand Liedausschnitt Hotwave Musik 2 07.10.2006 17:31:10
[verkaufe] Ländererkunng anhand der IP für VMS Peeps Lose4Scripts (erledigt) 10 05.08.2006 13:15:50


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19:03 Uhr.