MySQL Mittelwert einer Tabelle berechnen

Vvendetta

Grünschnabel
Hallo leute,

ich habe da ein kleines Problem. Ich versuche schon die ganze Zeit in MySQL den Mittelwert einer Spalte zu berechnen. Eig ist es ja ganz einfach aber bei mir ist es ein Spezialfall. Ich möchte den Mittelwert der Summe aus den Zeilen mit derselben ID berechnen. ( oh man das verwirrt ein XO)

Nun hier erstmal der Code um es besser verständlich zu machen :

Ich habe eine Mysql Datenbank mit diesen Werten



rating_idrating_postidrating_rating
194.5
2175
3215
4211.5
5211




Und ich greife über PHP auf die Datenbank zu:

Code:
$rating = $mysqli -> query("SELECT  SUM(rating_rating) / COUNT(rating_rating) FROM wp_ratings WHERE rating_postid = '$erstring[ID]' GROUP BY rating_postid ");
$ratingarray = $rating -> fetch_array();

Und zwar möchte ich dass der Wert aus der Spalte rating_rating mit dem Wert der anderen Zeilen mit derselben ID addiert und dann dividiert werden.

In diesem Fall:

5 + 1.5 + 1 / 3

Hat jemand eine Idee wie ich es machen könnte. Denn die Variante die ich hier gepostet habe funktioniert nicht.
 
Zuletzt bearbeitet:
Code:
SELECT rating_postid, AVG(rating_rating) FROM wp_ratings WHERE rating_postid = '$erstring[ID]' GROUP BY rating_postid;
Damit nur der Mittelwert der Spalten mit derselben ID errechnet wird sollte es so aussehen. Trotzdem klappt es komischerweise immernoch nicht
 
Sorry, hab meinen anderen Beitrag gelöscht, war Unsinn.

Werd mal genauer, was nicht funktioniert.
Abfragenfehler oder falsches Ergebnis?

Sehe da ein potenzielles Problem bei der PHP-Variable.
Und wozu überhaupt groupen, wenn man sowieso auf eine postid beschränkt?

Mach den Zugriff mal so:
PHP:
$rating = $mysqli -> query('SELECT AVG(rating_rating) FROM wp_ratings WHERE rating_postid = ' . $erstring['ID'] . ';');
$ratingarray = $rating -> fetch_array();

Gib außerdem $erstring['ID'] mal aus, ob das den richtigen Inhalt hat.
 
Das Problem ist dass bei mir nichts ausgegeben wird. Ich habe nach dieser Abfrage noch eine if else schleife stehen bei der für jeden Wert etwas anderes ausgegeben werden soll. Es wird aber nichts ausgegeben
 
Mach mal vor den zwei Zeilen ein var_dump($erstring) und nach den Zeilen ein var_dump($ratingarray);

Wie sind die Fehleranzeigeeinstellungen von PHP/MySQLi?
 
Leute ich habs!

Ich habe einfach den Code von Sheel etwas abgeaendert und voila es klappt. Ka wieso erst jetzt, da Sheels Syntax auch korrekt war :)

Es sieht jetzt so aus:

Code:
           $avgratingsqli = $mysqli -> query("SELECT AVG(rating_rating) FROM wp_ratings WHERE rating_postid = '21'");
$avgrating = $avgratingsqli -> fetch_array(); 

echo $avgrating['AVG(rating_rating)'];

VIelen Dank für eure Hilfe
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück