Statistik als Diagramm?

Wenn die Länge deines Balkens maximal 100 % sein soll, dann ja.
:)

Genau so funktioniert es. Wie gesagt Mathematik.

Grüße SimonErich
 
Hallo,
wie hier schon ausführlich beschrieben wurde, ist das verwenden von GD für jedes Bild wirklich ein totaler Overkill. Mal davon abgesehen, das es auf dem Server eine Load erzeugt diese Bilder zu generieren, so kommt hinzu das jedes Bild vom User abgerufen werden muss. Das erinnert mich an diese Webdesigns die aus 200 Bildern generiert werden und man beim Aufruf der Seite genau sieht, wann wieder ein Bild fertig geladen wurde.
Im Gegensatz dazu ist die 1 Bild version schon deutlich besser, aber ich würde gerne noch eine andere, schnellere und einfachere Methode nennen: pures CSS!
Man hat zwar keine schönen 3D Bilder, aber es geht bei Statistiken ja nicht um die Schönheit der Balken sondern um die Zahlen.
Beispiel (der "Basic Bar Graph", der Rest ist mit Bildern)
http://applestooranges.com/blog/post/css-for-bar-graphs/?id=55
Live Examples:
http://applestooranges.com/goodies/css-for-bar-graphs/

Die Mathematik dazu ist dort nicht erklärt, man macht es da nur mit Prozentwerten, also einfache Prozentrechnungen.

Gruss
 
Wenn die Länge deines Balkens maximal 100 % sein soll, dann ja.
:)

Genau so funktioniert es. Wie gesagt Mathematik.

Grüße SimonErich

ja aba wenn ich 20/100 rechne habe ich 5 also 5px? und bei 80/100 habe ich 1,... dann ist der doch mehr pixel breiter bei 20 besuchern. das kann doch garnicht sein wie macht man das richtig?
 
Hallo,
ich habe mal eben etwas kleines zusammengeschrieben mit der CSS Methode die ich genannt habe.
Vielleicht hilft dir das weiter

PHP:
<?php
/**
 * Beispieldaten generieren
 * $woche ist ein Array und soll die Besucheranzahl einer Woche darstellen
 */
FOR($i = 1; $i <= 7; $i++) {
    $woche[$i] = rand(0, 1000);
}
// Ausgabe mit der puren CSS Metode
?>
<html>
<head>
    <style type="text/css">
        .graph {
            position: relative; /* IE is dumb */
            width: 300px;
            border: 1px solid #B1D632;
            padding: 2px;
        }
        .graph .bar {
            display: block;
            position: relative;
            border: 1px solid #FFF;
            background: #B1D632;
            text-align: right;
            color: #333;
            height: 1em;
            line-height: 1em;
        }
    </style>
</head>
<body>
    <div class="graph">
<?php
    // Ermitteln des Tages mit den meisten Besuchern. Dieser Tag ist 100%
    $maxVisitors = max($woche);
    FOREACH($woche AS $besucherAmTag) {
        $value = round(100 / $maxVisitors * $besucherAmTag);
        echo '<strong class="bar" style="width: '.$value.'%;">'.$besucherAmTag.'</strong>';
    }
?>
    </div>
</body>
</html>
 
Hallo @Mairhofer

Unsere beiden Techniken sind sich eh sehr ähnlich.
Man könnte auch beide kombinieren, so könnte man bei meiner Berechnung statt einem Bild einfach ein <div> nehmen und dieses färben.
...
 
Also:

PHP:
mysql_connect="...";

$sql = "SELECT * from tabelle ";
Wie kann ich hier eingeben, dass alle einträge von gestern, dann vorgestern usw. bis 7 tage zurück jeweils einzeln angezeigt wird? Oder muss man das woanders einstellen?

und dann muss hier unsere obie rechnung hin oder?
 
Hallo @Mew

Naja ich denke mal du hast irgendwo in dieser Tabelle auch das Datum des Eintrags gespeichert.
(Am besten speicherst du es mit einem Zeitstempel, also time(), dann ist das noch einfacher)
Und nun kannst du einfach ein WHERE an das Statement dran hängen bzw. dann mit LIMIT eingrenzen.

Genau und daran kannst du dann unsere Funktion packen.
Ich weiß nicht wie viel Ahnung du von mysql hast, aber hier dürfte dann MAX

Grüße SimonErich
 
geht das auch so? Also für alle einträge von gestern?

PHP:
$yesterday = date("Y-m-d", strtotime('-1 day'));  

$query = mysql_query("SELECT DISTINCT `IP`
                       FROM `counter`
                       WHERE `Zeit` LIKE '" . $yesterday . "%'");
$on = mysql_num_rows($query); 
echo $on;
 
Zurück