Statistik (HTML, PHP & MySQL)

darcoda

Cadet 2nd Year
Registriert
Sep. 2005
Beiträge
30
Heyho,

ich plane mir eine Statistik zu basteln, in dem ich zahlen von Zugriffen aus einer SQL-Tabelle bekomme. Diese werd ich dann mit PHP verarbeiten und will das Grafisch mit Balken in HTML dann darstellen. Nur brauch ich einen Denkansatz wie ich das in HTML mit den Balken am besten darstellen kann. Desto mehr Besucher, des zu länger sollte der Balken werden.

Falls jemand von euch sowas schonmal gemacht hat, wäre ich dankbar für einen kleinen Denkanstoß :)

Vielen Dank :D
 
Warum willst du denn die Balken unbedingt mit HMTL darstellen? Generier dir doch lieber mit PHP ein paar schöne Diagramme, die du dann als IMGs einbindest:

http://pchart.sourceforge.net/

Ansonsten, falls es unbedingt HTML sein muss: Versuchs mal mit einer paar DIVS in unterschiedlichen Höhen.
 
der balken soll ja nicht ins unendliche gehen, heißt er hat eine feste größe. für sowas wie eine prozentuale darstellungen / füllung des balkens brauchst du einen "100%-Bezug".

Also:

Entweder du definierst dir eine entsprechend hohe 100%-Marke (je nachdem wie stark frequentiert dein Server wird). Baust dir ein äußeres Div mit Rahmen und ohne Füllung und einer festen weite und ein inneres Div, welches eine hintergrund(balken-)farbe bekommt und eine weite von width: ($zugriffe / $max_anzahl * 100) %

oder du schlüsselst den Spass anders auf. zb die derzeitige zugriffszahl als 100% und schlüsselst dann nach zugriffe pro tag auf.
 
@Stefan- Sehr cool, auch eine gute alternative aber ich wollte ja was eigenes machen und nicht via Klasse einbinden. Mit Div ist auch gut, ja... nur gibts da einen Ansatz irgendwie?

Edith sagt: Danke Rain, das ist eine sehr gute Idee.


Eine andere Frage, die Zugriffe wurden mit einem Timestamp versehen, wie kann ich es nun machen das ich Monatsweise eine Ausgabe bekomme? Der Timestamp ist ja nur 12188665789 als Beispiel. Wie mache ich das nun das ich alle Zugriffe aus Januar zum Beispiel bekomme? Eine SQL-Abfrage(SELECT) oder doch eher mit PHP(IF) dann verarbeiten?
 
Zuletzt bearbeitet:
Man kann auch einfach ein Minibild (1 Pixel breit, beliebige Pixelanzahl hoch) nehmen und per width-Attribut entsprechend strecken. Die Normalisierung wie Rain sie vorgeschlagen ist sollte natürlich ebenso durchgeführt werden.
 
@Abfrage kannst einfach fragen ob der Timestamp zwischen dem Timestamp des Monatsanfangs und -endes liegt :)
 
Wie QXARE schon gesagt, kannst du dir einfach Timestamps aus den entsprechenden Eckdaten genieren lassen.
Dafür eignen sich zum Beispiel mktime() oder strtotime(). Alternativ kannst du das auch direkt per MySQL mit UNIX_TIMESTAMP() realisieren.

Deine SQL Abfrage ist dann im Prinzip so:
SELECT `foo` FROM `bar` WHERE `time` BETWEEN $anfang AND $ende;
oder
SELECT `foo` FROM `bar` WHERE `time`>=$anfang AND `time`<=$ende;
 
Zurück
Oben