Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql Abfrage für pchart

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysql Abfrage für pchart

    Hallo Zusammen,

    Ich entschuldige mich schonmal vorab, dass ich als blutiger Anfänger euch hier belästige. Aber bisher waren alle meine Bemühungen (spezialisierte Foren, Mailinglisten, Selbstversuche) völlig umsonst.
    Die tallentierten Spezialisten hier im Forum sind sozusagen meinen letzte Hoffnung.

    Ich nutze für meine Seite zum Thema Ahnenforschung eine fertig PHP Skript-Sammlung (The Next Generation of Genealogy Site Building ("TNG") - http://lythgoes.net/genealogy/software.php).
    Diese beinhaltet eine Oberfläche in der man SQL SELECT Statements zur Erzeugung von Reports erfassen kann. Einige deutlich mehr bewanderte Nutzer des Skriptes haben ihre Beispiele uns anderen zur Verfügung gestellt.

    Hier zum Beispiel für den Report - Hochzeiten je Kalendermonat:
    PHP-Code:
    SELECT MONTHNAME(marrdatetr) AS month_in_which_marriedMONTH(marrdatetr) AS month_of_marriageCOUNT(*) AS TotalsRPAD('',COUNT(*)/10,'=') AS Graphic FROM tng_families WHERE MONTH(marrdatetr)>0 GROUP BY month_of_marriage
    Daraus kreiert die Skript-Sammlung dieses Ergebnis: http://www.ahnendaten.de/ahnen/showr...hp?reportID=44


    Ich hoffe diese Auswertungen mittels des PHP Chart Skripts pChart (http://www.pchart.net/) grafisch darstellen zu können.

    Aber ich habe überhaupt gar keinen Ahnung wie ich es anstellen soll.


    Es gibt ein allgemeines Beispiel für die Mysql Abfrage für pChart unter: http://wiki.pchart.net/doc.mysql.integration.html
    aber ich verstehe zu wenig von dem Code um ihn anpassen zu können.
    PHP-Code:
    /* Include the pData class */
    include("class/pData.class.php");

    /* Create the pData object */
    $MyData = new pData();  

    /* Connect to the MySQL database */
    $db mysql_connect("localhost""dbuser""dbpwd");
    mysql_select_db("pchart",$db);

    /* Build the query that will returns the data to graph */
    $Requete "SELECT * FROM `measures`";
    $Result  mysql_query($Requete,$db);
    $timestamp=""$temperature=""$humidity="";
    while(
    $row mysql_fetch_array($Result))
     {
      
    /* Push the results of the query in an array */
      
    $timestamp[]   = $row["timestamp"];
      
    $temperature[] = $row["temperature"];
      
    $humidity[]    = $row["humidity"];
     }

    /* Save the data in the pData array */
    $myData->addPoints($timestamp,"Timestamp");
    $myData->addPoints($temperature,"Temperature");
    $myData->addPoints($humidity,"Humidity");

    /* Put the timestamp column on the abscissa axis */
    $myData->setAbscissa("Timestamp");

    /* Associate the "Humidity" data serie to the second axis */
    $myData->setSerieOnAxis("Humidity"1);

    /* Name this axis "Time" */
    $myData->setXAxisName("Time");

    /* Specify that this axis will display time values */
    $myData->setXAxisDisplay(AXIS_FORMAT_TIME,"H:i");

    /* First Y axis will be dedicated to the temperatures */
    $myData->setAxisName(0,"Temperature");
    $myData->setAxisUnit(0,"°C");

    /* Second Y axis will be dedicated to humidity */
    $myData->setAxisName(1,"Humidity");
    $myData->setAxisUnit(0,"%"); 
    Ich freue mich über absolut JEDE hilfreiche Antwort.
    Im Voraus vielen Dank für Ihre Mühe.
    Und Herzliche Grüsse aus der Schweiz
    Ingo

  • #2
    Willkommen im Forum.

    Dein Thread fällt ziemlich in diesen Bereich:

    http://www.php.de/php-einsteiger/675...sumfragen.html

    Kommentar


    • #3
      Zitat von swissgenealogy Beitrag anzeigen
      Aber ich habe überhaupt gar keinen Ahnung wie ich es anstellen soll.

      [...]

      aber ich verstehe zu wenig von dem Code um ihn anpassen zu können.
      Auf dieser Basis ist wohl auch der Hinweis auf die Scriptbörse angebracht, denn es sieht nicht danach aus, als könne man dir konstruktive Ansätze zum Selbermachen geben.

      Kommentar


      • #4
        2. Versuch

        Hallo Zusammen,

        Offensichtlich muss ich hier falsch sein. Könnte der Moderator den Eintrag bitte in die Scriptbörse verschieben.

        Ich habe hier noch ein paar Details:

        PHP-Code:
        /* Include the pData class */
        include("class/pData.class.php");

        /* Create the pData object */
        $MyData = new pData();  

        /* Connect to the MySQL database */
        $db mysql_connect("localhost""dbuser""dbpwd");
        mysql_select_db("pchart",$db); 
        Die Datenbankverbindung ist soweit klar.

        PHP-Code:
        /* Build the query that will returns the data to graph */
        $Requete "SELECT MONTHNAME(marrdatetr) AS Kalendermonat,  MONTH(marrdatetr) AS Monat, COUNT(*) AS Totals FROM tng_families WHERE MONTH(marrdatetr)>0 GROUP BY Monat;`";
        $Result  mysql_query($Requete,$db); 
        Auch Anfrage zur aktiven Datenbank habe ich vermutlich verstanden.

        Aber den folgenden Teil verstehe ich gar nicht. Für einen Erklärung wäre ich mehr als dankbar !
        PHP-Code:
        $timestamp=""$temperature=""$humidity="";
        while(
        $row mysql_fetch_array($Result))
         {
          
        /* Push the results of the query in an array */
          
        $timestamp[]   = $row["timestamp"];
          
        $temperature[] = $row["temperature"];
          
        $humidity[]    = $row["humidity"];
         } 
        PHP-Code:
        /* Save the data in the pData array */
        $myData->addPoints($timestamp,"Timestamp");
        $myData->addPoints($temperature,"Temperature");
        $myData->addPoints($humidity,"Humidity"); 
        Logischerweise bräuchte ich zwei addPoints Funktionen: eine für den "Kalendermonat" und eine für "Totals"

        Danke
        Ingo

        Kommentar


        • #5
          asd

          Kommentar


          • #6
            Vielen Dank Auranores,

            Hat mir natürlich geholfen.

            Ich dachte an diesen Code:
            PHP-Code:
            /* Build the query that will returns the data to graph */
            $Requete "SELECT MONTHNAME(marrdatetr) AS Kalendermonat, MONTH(marrdatetr) AS Monat, COUNT(*) AS Totals FROM tng_families WHERE MONTH(marrdatetr)>0 GROUP BY Monat";
            $Result  mysql_query($Requete);
            while(
            $row mysql_fetch_array($Result))
             {
              
            /* Push the results of the query in an array */
              
            $Kalendermonat $row["Kalendermonat"];
              
            $Totals $row["Totals"];
             }

            /* Save the data in the pData array */
            $myData->addPoints($Kalendermonat,"Kalendermonat");
            $myData->addPoints($Totals,"Totals"); 
            Leider bekomme ich diese Fehlermeldungen
            Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web673/html/tng/pChart/xx.php on line 16
            - line 16 ist while($row = mysql_fetch_array($Result))

            Fatal error: Call to a member function addPoints() on a non-object in /var/www/web673/html/tng/pChart/xx.php on line 24
            - line 24 ist $myData->addPoints($Kalendermonat,"Kalendermonat");

            Ich vermute (weil ich leider zu wenig von SELECT, mysql_query und mysql_fetch_array verstehe) das Ergebnis der oben aufgeführte SELECT Funktion kann nicht in der Funktion $myData->addPoints verarbeitet werden.

            Hat jemand einen Idee?

            Kommentar


            • #7
              Zwei Anmerkungen:

              1. hast Du nicht genannt, was das Diagramm überhaupt gegeneinander abbilden soll und welcher Diagrammtyp genutzt werden soll.
              2. ist es sehr fraglich, ob ein entsprechend geschriebenes Script so einfach in das verwendete G.-System eingepflegt werden kann. Das Seitenlayout scheint dadurch ja ein in sich geschlossenes System zu bilden, eine Art spezialisiertes CMS. Falls Du Dir das so vorstellst, dass das Diagramm allein über eine Query erzeugt werden kann - nein, das ist nicht möglich.

              Kommentar


              • #8
                asd

                Kommentar

                Lädt...
                X