Ir al contenido


Foto

[RESUELTO] Graficar datos extraidos desde BD en google.charts


  • Por favor identifícate para responder
12 respuestas en este tema

#1 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 08:54

Que tal comunidad Delphi! 

Pasa que quiero mostrar cierta informacion por medio de una grafica, y me estoy ayudando de google.charts, (que practicamente es una funcion js) y yo estoy trabajando en php, por lo cual los datos los extraigo de la bd con sql, pero aqi les pongo un fragmento del codigo, para que me entendais:
OJO: es una grafica de PIE o TARTA....

[js]function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Task');
        data.addColumn('number', 'Hours per Day');
        data.addRows(5);
     
        data.setValue(0, 0, 'Work');
        data.setValue(0, 1, 11);
        data.setValue(1, 0, 'Eat');
        data.setValue(1, 1, 2);
        data.setValue(2, 0, 'Commute');
        data.setValue(2, 1, 2);
        data.setValue(3, 0, 'Watch TV');
        data.setValue(3, 1, 2);
        data.setValue(4, 0, 'Sleep');
        data.setValue(4, 1, 7);

        var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, {width: 450, height: 300, title: 'My Daily Activities'});
      }
[/js]

Yo lo que necesito es saber como le cargo los valores que extraigo de la BD en cada uno de los data.setValue?
Si me pudieran ayudar....se los agradeceriaa aun más.!

Saludos
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 09:44

Para eso necesitas trabajar con arreglos (arrays) aqui un tuto de como hacerlo

Saludos.

  • 0

#3 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 10:31

Que tal!...  habia leido algo referente a los arreglos y francamente lo intenté y no lo sonsigo aun. El ejemplo del tuto esta muy bien, pero lo trato de ejectuar en mi pc y nop me funcion!

Me gustaria si me pudieran ayudar a construir el arreglo adecuado  :(  ... y se me dificulta aun este tema (soy muy novato en esto). Muchas graxias de antemano..
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 10:46

Bueno, vamos a ir por pasos a ver si resolvemos este asunto, primero debes enviarnos la consulta que trae los valores necesarios de la graficacion.

Saludos.

  • 0

#5 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 11:32

Este es mi codigo..con el que extraigo los valores de la BD.

//me conecto al servidor, en este caso aun lo tengo local
$Cxn=mysql_pconnect("localhost","root","pass")or die(mysql_error($Cxn));

//query
  mysql_select_db("miBD",$Cxn) or die(mysql_error($Cxn));
  $q="SELECT nombre_cia, mjs_env FROM mensajes";
  $res = mysql_query($q);

  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 11:36

Ok, solo veo dos campos, cual es la columna, y los valores?.

Saludos.

  • 0

#7 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 11:46

asi es amigo son solo dos campos los que necesito de la tabla......

necesito representar en una grafica de Tarta o Pie, la cantidad de Mensajess que se envian a
ciertas compañias.........  supongamos la siguiente tabla

NOMBRE      No Mjs
JUAN              90
  • 0

#8 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 11:50

asi es amigo son solo dos campos los que necesito de la tabla......

necesito representar en una grafica de Tarta o Pie, la cantidad de Mensajess que se envian a
ciertas compañias.........  supongamos la siguiente tabla

NOMBRE      No Mjs
JUAN              90


MARIA          100
ETC                30

en la consulta...extraigo el Nombre y el No de mensajes......
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 11:51

mmm, a ver, hay mas de un JUAN, MARIA, ETC con una x cantidad de mensajes?

  • 0

#10 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 11:55

nop.. afortunadamente, ningun campo de nombre se repite!.....
  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 12:12

Prueba con esto:

<?php

  //me conecto al servidor, en este caso aun lo tengo local
  $Cxn = mysql_pconnect("localhost","root","pass")or die(mysql_error($Cxn));

  //query
  mysql_select_db("miBD",$Cxn) or die(mysql_error($Cxn));
  $q="SELECT nombre_cia, mjs_env FROM mensajes";
  $res = mysql_query($q);
  $total = mysql_num_rows($res);
 
  $i = 0;

    echo 'function drawChart() {
        var data = new google.visualization.DataTable();
        data.addRows(' . $total .');';
     
    while($fila = mysql_fetch_object($res)){
   
    echo 'data.SetValue(' . $i++ . ',0, ' . $fila->nombre_cia .');
          data.SetValue(' . $i++ . ',1,' . $fila->mjs_env .');';
    }
         
    echo  'var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
        chart.draw(data, {width: 450, height: 300, title: \'My Daily Activities\'});
      }';
?>


Lo hice al vuelo, asi que no hay garantia de que funcione, nos comentas.

Saludos.

  • 0

#12 abnervg

abnervg

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 noviembre 2011 - 03:21

Wow!  YA ESTA.... con un par de modificaciones a tu codigo quedo todo muy bien!..........
Ahora ya esta el grafico online!...

<html>
  <head>
    <script type="text/javascript" src="[url=https://www.google.com/jsapi]https://www.google.com/jsapi[/url]"></script>
    <script type="text/javascript">
        google.load("visualization", "1", {packages:["corechart"]});
        google.setOnLoadCallback(drawChart);

        <?php
        $Cxn=mysql_pconnect("localhost","root","pass")or die(mysql_error($Cxn));
        mysql_select_db("miBD",$Cxn) or die(mysql_error($Cxn));
        $ssql="select nombre , cantidad FROM mitabla";
        $res = mysql_query($ssql);
        $total = mysql_num_rows($res);
        $i = 0;
        echo 'function drawChart(){
                var data = new google.visualization.DataTable();
                data.addColumn("string", "Nombre");                                //es importante especificar nombres y tipo para columnas
                data.addColumn("number", "CantidadEnviada");
                data.addRows('. $total.');';
        while($fila = mysql_fetch_object($res))
        {
            echo 'data.setValue('. $i .', 0, ' . $fila->nombre.');                                    //ojo con el incremento.
                  data.setValue('. $i .', 1, ' . $fila->cantidad.');';
            $i  ;
        }
        echo  'var chart = new google.visualization.PieChart(document.getElementById("chart_div"));
        chart.draw(data, {width: 450, height: 300, title: \'REPORTE DE ENVIOS\'});
        }';
        ?>
    </script>
  </head>
  <body>
  <div id="chart_div"></div>
  </body>
</html>



MUCHISIMAS GRACIAS POR ILUSTRARME......  Estamos en contacto.   

SALUDOS
  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 noviembre 2011 - 07:00

Ah que bueno, pues pongo el tema con RESUELTO.

Saludos.

  • 0




IP.Board spam blocked by CleanTalk.