|
|
|
|
5 Sterne Bewertung |
Champus
BlackBoarder
Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe
|
|
5 Sterne Bewertung |
|
Kleine Frage:
Wie lautet die Vorgehensweise für eine 5-Sterne-Bewertung, wie es sie z.B. hier im Forum für Beiträge gibt?
Benutzer wählt zwischen 1 und 5 aus, dieser Wert wird in die Datenbank eingetragen - zweiter Benutzer wählt anderen Wert zwischen 1 und 5 aus, jetzt muss ja der Durchschnitt davon errechnet und gespeichert werden - wie funktioniert dies?
gruß
corvus
__________________ CorvusCorone -> Champus
|
|
20.08.2006 11:41 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Eine Datenbank brauchst du dafür nicht zwangsweise, man könnte es auch über Textdateien auf dem Dateisystem lösen... aber eine Datenbank wäre natürlich einfacher zu handhaben.
Im Grunde genommen brauchst du dafür nicht allzuviel beachten. Speichern würde ich mit jedem Vote die ID der entsprechenden Abstimmung (falls du mehrere verschiedene Sachen bewerten lassen willst), die entsprechende Punktzahl (von 1 bis 5 in deinem Beispiel), dazu noch die IP-Adresse und einen Timestamp.
Anhand der letzten beiden Informationen kannst du sicherstellen, dass der gleiche Benutzer nicht mehrfach hintereinander abstimmt, indem du Votes von der gleichen IP für einen bestimmten Zeitraum nach dem ersten Vote einfach unterbindest. Diesen Punkt kannst du auch einfacher haben, wenn du wie beispielsweise hier im Board einen festen angemeldeten Benutzerkreis hast, der nur abstimmen darf. Dann bräuchtest du statt IP und Timestamp nur die Benutzer-ID mit ablegen, da dann jeder angemeldete Benutzer eben nur einmal abstimmen kann.
Das ganze Zeug in der Datenbank dann auszuwerten sollte das geringste Problem sein. Wie man einen Durchschnitt berechnet, sollte man irgendwann mal in der Schule gehabt haben, ansonsten würde dir MySQL das mittels der AVG()-Funktion sogar abnehmen
Etwas komfortabler kannst du es für den Benutzer noch machen, indem du nach erfolgter Abstimmung einen Cookie setzt, in dem vermerkt wird, dass der Benutzer schon abgestimmt hat. So kannst du prüfen, ob beim erneuten Aufruf der entsprechenden Seite nochmal das Bewertungsformular angezeigt werden soll oder gleich das Abstimmungsergebnis. Wenn du nur angemeldete Nutzer hast, kannst du das natürlich auch ohne Cookie lösen.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
20.08.2006 12:20 |
|
|
|
|
|
|