php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2006, 12:49  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von xabbuh
In diesem Fall soll also der Durchschnitt der Spalte vote ermittelt werden. Dabei werden die Datensätze anhand der Spalte pic_id gruppiert. Schließlich willst du den Durchschnitt ja für jedes Bild haben.
Eigentlich müsste man doch nach den selektierten Spalten gruppieren....also nicht GROUP BY v.pic_id sondern GROUP BY p.name, p.description, p.filepath?
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.08.2006, 13:05  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Soweit ich weiß kann nur gruppiert werden, was auch selektiert wird.
Zergling-new ist offline   Mit Zitat antworten
Alt 01.08.2006, 13:32  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Maho88
Zitat:
Zitat von ignatz
Zitat:
Zitat von Werbegeschenk
So bekommt er nur die IDs der bestbewerteten Bildern -
Naja, wenn er kummulativ die votes zu jedem Bild speichern würde, wäre das kein Thema. Nicht jede Normalisierung ist auch sinnvoll.
also in die Tabelle pics noch folgende Spalten?
pic_id | name | description | filepath | views | votes_sum | votes_number
Noch einfacher:
pic_id | name | description | filepath | views | durchschnitt

Dann reicht:
Code:
SELECT spalten,liste FROM tabelle WHERE dies=das ORDER BY durchschnitt [DESC] LIMIT 1, 3
Du mußt also bei jeder Bewertung den aktuellen Durchschnitt ausrechnen.

EDIT:
die Berechnung des aktuellen Durchschnitts war fehlerhaft.


Hier die korrigierte Fassung.
1. es wird eine Spalte mehr benötigt

pic_id | name | description | filepath | views | durchschnitt | anzahl (der Bewertungen)

Code:
UPDATE tabelle SET anzahle = anzahl + 1, durchschnitt = (durchschnitt * anzahl + $neuer_wert) / (anzahl + 1) WHERE dies=das
durchschnitt darf dann natürlich nicht vom Typ integer sein.
anzahl ist integer.
  Mit Zitat antworten
Alt 01.08.2006, 13:36  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Der Durchschnitt ist das dann aber nicht wirklich.

10 Bewertungen Ã* 9 Punkte = 9 im Schnitt
Dann bewertet jemand mit einem Punkt. (9 + 1) / 2 = 5
Richtig wären es (90 + 1) / 11 = 8.27
Zergling-new ist offline   Mit Zitat antworten
Alt 01.08.2006, 13:41  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
Der Durchschnitt ist das dann aber nicht wirklich.
EDIT:
siehe EDIT.
  Mit Zitat antworten
Alt 01.08.2006, 13:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Nein, du stellst doch die Gewichtung des letzten Votes zu den komplett bisher gemachten gleich. Oder steh ich jetzt aufm Schlauch?

Dein Beispiel kann ich auch grad nicht nachvollziehen.
Zergling-new ist offline   Mit Zitat antworten
Alt 01.08.2006, 13:55  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von Zergling
Nein, du stellst doch die Gewichtung des letzten Votes zu den komplett bisher gemachten gleich. Oder steh ich jetzt aufm Schlauch?
Nein du stehst nicht auf dem Schlauch - so kommen falsche Werte raus.

Zitat:
Dein Beispiel kann ich auch grad nicht nachvollziehen.
Er hat sich eben gerade ein Beispiel rausgepickt, bei dem das Problem nicht auftritt... ;)
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 01.08.2006, 14:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Werbegeschenk
Er hat sich eben gerade ein Beispiel rausgepickt, bei dem das Problem nicht auftritt...
Siehe EDIT.
  Mit Zitat antworten
Alt 01.08.2006, 15:42  
Benutzer
 
Registriert seit: 18.09.2005
Beiträge: 47
Maho88
Standard

So funktioniert es. Danke an alle!!
Maho88 ist offline   Mit Zitat antworten
Alt 01.08.2006, 18:51  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Werbegeschenk
Eigentlich müsste man doch nach den selektierten Spalten gruppieren....also nicht GROUP BY v.pic_id sondern GROUP BY p.name, p.description, p.filepath?
Ja, generell schon. MySQL ist da recht tolerant und erlaubt es auch, Spalten zu selektieren, die nicht in der GROUP BY-Klausel aufgeführt werden. Gibt es allerdings unterschiedliche Werte für eine dieser Spalten, ist es mehr oder weniger zufällig, welcher dieser Werte geliefert wird.
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Zip Archiv entpacken und Bilder verkleinern Simon9990 PHP Tipps 2008 5 08.10.2007 00:32
Bilder in HTML-Mails werden willkürlich "verissen" hoffnungsloser PHP-Fortgeschrittene 3 25.04.2007 14:48
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
Bilder löschen die öffter vorhanden sind?! Peoples PHP Tipps 2006 6 28.05.2006 19:34
Bilder "schützen" PHP Tipps 2006 4 06.03.2006 15:25
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
[Erledigt] Bilder frei positionieren und von Text umfließen lassen. HTML, Usability und Barrierefreiheit 10 24.04.2005 00:05
Bilder nach Namen anzeigen PHP Tipps 2005 11 06.03.2005 15:41
Bilder aus der Datenbank Skazi Datenbanken 2 09.02.2005 13:42
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
1000de bilder einfügen ab schnell..? :-) PHP Tipps 2004 12 11.08.2004 20:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.