Ergebnis 1 bis 3 von 3

Thema: Anfängerfrage: Diagramm erstellen aus Daten der letzten 7 Tage

  1. #1
    HTML Newbie
    Registriert seit
    11.11.2012
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Anfängerfrage: Diagramm erstellen aus Daten der letzten 7 Tage

    Hallo,
    ich habe ein Problem mit einem Diagramm, welches veranschaulichen soll wie lange ein User ein Programm benutzt hat, dazu speichert das Programm für jede einzelne Stunde in einer MySQL Datenbank die Zeit, welche anschließend in PHP über ein Diagramm veranschaulicht werden soll. Mein Problem dabei ist folgendes:
    Da ein User das Programm ja nicht unbedingt 24 Stunden an 7 Tagen in der Woche verwendet gibt es in der Datenbank natürlich auch Stunden, welche garnicht darin stehen, also kann ich nun nicht sagen, dass er einfach die letzten 168 EInträge ausliest (168 = 27*7) um von jedem Tag die einzelnen Zeiten von 0 bis 23 Uhr anzuzeigen. Nun ist die Frage für mich, wie ich nun festlegen kann, dass er immer von 0 bis 23 Uhr ausliest und dann leere Zeiten mit 0 ausgibt und auch die Einzelnen Daten der letzten 7 Tage vom heutigen an nach hinten hin den einzelnen Zeiten pro Stunde zuordnet.
    Ich wollte das ganze mit diesem Diagramm veranschaulichen: http://jpgraph.net/features/src/show...t=new_bar1.php
    Mein Ansatz bisher war folgender:
    PHP-Code:
    <?php
    require_once ('../../jpgraph/src/jpgraph.php');
    require_once (
    '../../jpgraph/src/jpgraph_bar.php');
    $verbindung mysql_connect ("dbadresse",
            
    "dbuname""dbpasswort")
            or die (
    "keine Verbindung möglich.
                    Benutzername oder Passwort sind falsch"
    );
    mysql_select_db("dbname")
    or die (
    "Die Datenbank existiert nicht.");
    $id=$_SESSION['UserID'];
    $sql "SELECT Nickname FROM User WHERE ID='$id'";
    $result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    $row mysql_fetch_assoc($result);
    $name=$row['Nickname'];
    $sql "SELECT * FROM zeitlog WHERE username='$name' ORDER by datum DESC LIMIT 168";
    $result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    $datum = array();
    $zeit = array();
    while (
    $row mysql_fetch_object($result))
    {
        
    $datum[] = date("d.m.Y",$row->datum);
        
    $zeit[] = $row->minuten;
    }

    $data1y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);
    $data2y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);
    $data3y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);
    $data4y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);
    $data5y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);
    $data6y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);
    $data7y=array($zeit[0], $zeit[1], $zeit[2], $zeit[3], $zeit[4], $zeit[5], $zeit[6]);


    $graph = new Graph(600,400,'auto');
    $graph->SetScale("textlin");

    $theme_class=new UniversalTheme;
    $graph->SetTheme($theme_class);

    $graph->yaxis->SetTickPositions(array(60,120,180,240,300,360,420,480,540,600), array(30,90,150,210,270,330,390,450,510,570));
    $graph->SetBox(false);

    $graph->ygrid->SetFill(false);
    $graph->xaxis->SetTickLabels(array($datum[0], $datum[1], $datum[2], $datum[3], $datum[4], $datum[5], $datum[6]));
    $graph->yaxis->HideLine(false);
    $graph->yaxis->HideTicks(false,false);

    // Create the bar plots
    $b1plot = new BarPlot($data1y);
    $b2plot = new BarPlot($data2y);
    $b3plot = new BarPlot($data3y);
    $b4plot = new BarPlot($data4y);
    $b5plot = new BarPlot($data5y);
    $b6plot = new BarPlot($data6y);
    $b7plot = new BarPlot($data7y);

    // Create the grouped bar plot
    $gbplot = new GroupBarPlot(array($b1plot,$b2plot,$b3plot,$b4plot,$b5plot,$b6plot,$b7plot));
    // ...and add it to the graPH
    $graph->Add($gbplot);


    $b1plot->SetColor("white");
    $b1plot->SetFillColor("#cc1111");

    $b2plot->SetColor("white");
    $b2plot->SetFillColor("#11cccc");

    $b3plot->SetColor("white");
    $b3plot->SetFillColor("#1111cc");

    $b4plot->SetColor("white");
    $b4plot->SetFillColor("#cc11cc");

    $b5plot->SetColor("white");
    $b5plot->SetFillColor("yellow");

    $b6plot->SetColor("white");
    $b6plot->SetFillColor("red");

    $b7plot->SetColor("white");
    $b7plot->SetFillColor("blue");

    $graph->title->Set("Statistik von $name");

    // Display the graph
    $graph->Stroke();
    ?>
    Wie man erkennen kann finktioniert das so nun nicht wirklich so, wie ich es mir erhofft habe. Wäre schön, wenn mir geholfen werden könnte!

    Gruss
    Hannibal
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in) Avatar von lukasn
    Registriert seit
    23.02.2008
    Ort
    Schweiz
    Alter
    27
    Beiträge
    491
    Danke
    2
    Bekam 12 mal "Danke" in 11 Postings

    Standard AW: Anfängerfrage: Diagramm erstellen aus Daten der letzten 7 Tage

    Hängt etwas davon ab, wie du die Zeiten gespeichert hast. Wenn du sie als Timestamp hast, kannst du sie ungefähr so auslesen:

    Code:
    SELECT*FROM `table` WHERE `username`='$name' AND `timestamp_spalte` > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 WEEK)
    Du vergleichst dabei einfach den gespeicherten Timestamp mit dem aktuellen Timestamp minus 7 Tage. Es gibt in MySQL noch verschiedenste andere Datums- und Zeitfunktionen, eine gute Referenz davon gibt es hier. BETWEEN könnte z.B. auch eine Funtkion sein, die dir dabei nützlich ist.

    Die genaue Unterteilung der Daten machst du dann am besten programmatisch in PHP.

    EDIT: Hier wäre noch die deutsche Version der Referenz: http://dev.mysql.com/doc/refman/5.1/...functions.html
    Geändert von lukasn (11.11.2012 um 17:53 Uhr) Grund: sql code korrigiert.

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    11.11.2012
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Anfängerfrage: Diagramm erstellen aus Daten der letzten 7 Tage

    Die Zeiten sind um Unix Timestamp gespeichert, und jede angefangene Stunde wird eben ein neuer EIntrag gemacht mit dem Aktuellen Datum also Tag Monat Jahr und Stunde gemacht.

Ähnliche Themen

  1. Einträge der letzten 5 Tage aus DB auslesen mit PHP
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 10.01.2010, 23:48
  2. MySQL Tage zwischen 2 Daten
    Von Darkxor im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 30.08.2009, 21:55
  3. Erstellen einer Schaltflächen aus XML-Daten!
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 20.02.2006, 15:51
  4. Tage zwischen zwei Daten ausgeben
    Von Knüps im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 16
    Letzter Beitrag: 15.01.2006, 22:26
  5. Menü für Daten Dvds erstellen???
    Von Ilmer im Forum Computer - Internet Forum
    Antworten: 3
    Letzter Beitrag: 02.05.2005, 16:18

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •