php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Userstatistik grafisch darstellen


 
Tomcat Chriss
04-01-2004, 15:32 
 
Hallo,

ich habe für mein CMS eine Benutzerstatistik erstellt. In der Datenbank wird für jeden User protokolliert, wie oft er sich eingeloggt hat.

Das ganze möchte ich jetzt grafisch ausgegeben bekommen. Ich hole mir aus der Datenbank mit "SELECT SUM(user_logincount)" die Gesamt-Loginzahlen und lasse dann eine Tabelle ausgeben. Mit Benutzernamen und anschließend die Anzahl seiner Logins.

Ich möchte jetzt zusätzlich noch eine Balken ausgeben lassen. Ich weiß aber nicht, wie ich das regeln kann. Ich kann zwar die Prozentsätze ausrechnen und habe auch schon Grafiken für den Balken (leftbar.gif, mainbar.gif, rightbar.gif), aber ich weiß nicht, wie ich die Länge von mainbar.gif beim Anzeigen verändern kann, so dass ich eine Auswrertung bekomme, die dieser hier ähnlich ist.

http://www.gigahertz.de/balken.JPG

Wie kann ich das realisieren?

Danke, Chriss

 
mosez
04-01-2004, 15:42 
 
entweder über die image-funktionen von php oder über tabellen, was zwar nicht ganz so elegent aber einfacher zu realisieren ist:

<table cellpadding=0 cellspacing=0>
<tr>
<td><img src="leftbar.gif" height=10 width=10></td>
<td><img src="mainbar.gif" height=10 width=<?php echo $count; ?>>
<td><img src="rightbar.gif" height=10 width=10></td>
</tr>
</table>


mfg mosez

 
TobiaZ
04-01-2004, 15:56 
 
GDlib sollte ein Begriff sein. Ansonsten hilft dir vielleicht ausnahmsweise mal die Suche. Das Thema hatten wir schon öffters.

 
wahsaga
04-01-2004, 17:40 
 
Original geschrieben von TobiaZ
GDlib sollte ein Begriff sein.
schon - aber ob sie hier angebracht ist?

da finde ich mosez' lösung, einfach ein kleines bild per width=xy auf die nötige breite strecken zu lassen, schon besser.

(btw: es muss ja nicht mal ein bild sein, ein leeres html-element mit entsprechender breite und border tut's ja auch ...)

 
TobiaZ
04-01-2004, 18:13 
 
für ne einfache ausgabe reichts mit sicherheit, das stimmt schon.:cool:

 
Tomcat Chriss
04-01-2004, 19:07 
 
Ich habe es über die Grafik, die in der Breite verändert wird, gelöst. Hier meine Lösung:


echo "<table><tr><td>Username</td><td>Logins</td></tr>";

$sql = " SELECT uname, logincount
FROM nuke_users

UNION ALL

SELECT 'SUMME' AS uname, SUM(logincount) AS logincount
FROM nuke_users
ORDER BY logincount DESC;
";

$result = @mysql_query($sql) or die("Konnte die SELECT-Abfrage nicht uasführen!");
while ($abfrage = mysql_fetch_object($result))
{
if ( $abfrage->logincount == "SUMME" )
{
$summe = $abfrage->logincount;
}
else
{
$prozent = $abfrage->logincount / $summe * 100;
$prozent = sprintf("%01.2f", $prozent);

echo "
<tr><td>".$abfrage->uname."</td>
<td><img src=\"leftbar.gif\" height=\"15\" width=\"7\">
<img src=\"mainbar.gif\" height=\"15\" width=\"".$prozent."%\">
<img src=\"rightbar.gif\" height=\"15\" width=\"7\">
<font site=\"1\">".$prozent."% (".$abfrage->logincount.")</font>
</td></tr>
";
}
}

echo "<tr><td colspan=\"2\"><center>Logins insgesamt: ".$summe."</center></td></tr></table>";

Hoffe, damit auch anderen Usern helfen zu können.

Danke, Chriss

Übrigens: Ich nutze immer bevor ich poste die Suche, aber Ich hab mir hierzu fast enen Wolf gesucht.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:49 Uhr.