Statistische Auswertung

qsrs

Erfahrenes Mitglied
Hallo,

ich habe einen Dateimanager geschrieben. In einer Datenbank werden in einer Tabelle alle Dateiinformationen gespeichert. Bei jeder Datei wird auch die ID der Gruppe und des Users gespeichert, welche diese hochgeladen hat. Nun möchte ich eine Statistik anbieten, die mir die top 10 Gruppen und die top 10 User mit den meisten Uploads anzeigt. Wie müsste ich das umsetzen? Das war die erste Frage.

Die zweite Frage ist, ich möchte das Volumen der Gruppe berechnen, die am meisten Uploads hat. Gibt es eine MySQL-Abfrage, die mir all Datensätze holt, die eine id, also einen Wert, am häufigsten beeinhaltet?

Und nun die dritte Frage. Ich habe eine weitere Tabelle, in welcher der Traffic gespeichert wird. Für jede Datei wird gespeichert, an welchem Tag, welchem Monat, und in welchem Jahr die Datei hochgeladen wurde. Nun möchte ich eine graphische Übersicht über das Jahr, an welchem Monat am meisten hochgeladen wurde und an welchem Tag. Wie könnte ich hier ansetzen?

Ich würde mich über Anregungen und Tipps sehr freuen.
 
Hallo!

Also wie du zu den Top10 Usern/Gruppen kommst, kannst du wie folgt ansetzen.
Du holst dir alle groupid's/userid's in ein Array .. z.B. mit der Query

Code:
SELECT groupid FROM table_groups;
SELECT userid FROM table_users;

mit dem Array, schaust du nun nach, welcher Benutzer wiviele Files hat ...

PHP:
foreach($groupids as $akt_groupid)
{
    $row = $db->query("SELECT COUNT(downloadid) as anz_downloads FROM `table_downloads` WHERE `groupid`=$akt_groupid");
    echo "Grupppe $akt_groupid besitzt $row[anz_downloads]";
}

gleiches gilt auf für die User.


Deiner zweiten Frage kann ich leider nicht ganz folgen .. kannst du das evtl. noch etwas konkretisieren?


Zur Statistik:
Die graphische Komponente realisierst du am besten mit der GdLib -- such z.B. nach Tutorials der GdLib -- sie ist nicht all zu kompliziert zu verwenden, du kommst sicher schnell drauf wie du linien/balken charts programmieren kannst.

Schöne Grüße!
 
Die erste Anfrage kannst du dir auch komplett von der Datenbank berechnen lassen:

SQL:
SELECT user_id, COUNT(file_id) AS 'anzahl', SUM(file_size) AS 'summe'
FROM uploads
GROUP BY user_id
ORDER BY COUNT(filesize) DESC
LIMIT 10
 
Danke an euch beide für die Antworten. Ich habe die erste und zweite Frage bereits selbst mit einer DB-Abfrage umsetzen können, und für die dritte habe ich auch schon eine Idee.

Bei der dritten werde ich das aktuelle Jahr in der Tabelle abfragen und die einzelnen Monate entsprechend nach Dateimengen sortieren. Die Ergebnisse muss ich dann noch grafisch darstellen. Ich werde mir dazu die GdLib einmal ansehen.
 
Zurück