[RESUELTO] Graficar datos extraidos desde BD en google.charts
#1
Escrito 09 noviembre 2011 - 08:54
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
#2
Escrito 09 noviembre 2011 - 09:44
#3
Escrito 09 noviembre 2011 - 10:31
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..
#4
Escrito 09 noviembre 2011 - 10:46
Saludos.
#5
Escrito 09 noviembre 2011 - 11:32
//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);
#6
Escrito 09 noviembre 2011 - 11:36
Saludos.
#7
Escrito 09 noviembre 2011 - 11:46
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
#8
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......
#9
Escrito 09 noviembre 2011 - 11:51
#10
Escrito 09 noviembre 2011 - 11:55
#11
Escrito 09 noviembre 2011 - 12:12
<?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.
#12
Escrito 09 noviembre 2011 - 03:21
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
#13
Escrito 10 noviembre 2011 - 07:00
Saludos.