with hig graficos graficas grafica example estadisticos dinamicas data created chart barras php javascript mysql json highcharts

graficos - highcharts php mysql json



Highcharts & Mysql (2)

Intenta usar implode('', '', $customer); e implode('', '', $secondes); en lugar de las funciones de join .

Necesito ayuda con este código, logro extraer datos de una base de datos mysql y convertirlos a un formato requerido por Highcharts.

<?php $query =mysql_query("select date_format(connect_time,''%Y-%m-%d %H %i'') AS date, Customers.name as customer, Sum(duration) as secondes from CDR_Vendors inner join Customers on (CDR_Vendors.i_customer = Customers.i_customer) where i_vendor=''32'' and connect_time between ''2010-09-01 00:00:00'' and ''2010-09-01 00:10:00'' group by date ORDER BY date", $link) or die(mysql_error()); $row = mysql_fetch_assoc($query); $customer[] = $row[''customer'']; $json_secondes = array(); $json_date = array(); do{ $secondes[] = $row[''secondes'']; array_push($json_secondes, $row[''secondes'']); array_push($json_date, $row[''date'']); } while($row = mysql_fetch_assoc($query)); //echo json_encode($json_secondes,$row); //echo json_encode($json_date,$row); //echo join($secondes, '', ''); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Highcharts Example</title> <!-- 1. Add these JavaScript inclusions in the head of your page --> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript" src="../js/highcharts.js"></script> <!-- 1a) Optional: the exporting module --> <script type="text/javascript" src="../js/modules/exporting.js"></script> <!-- 2. Add the JavaScript to initialize the chart on document ready --> <script type="text/javascript"> var chart; $(document).ready(function() { chart = new Highcharts.Chart({ chart: { renderTo: ''container'', defaultSeriesType: ''column'' }, title: { text: ''Monthly Average Rainfall'' }, subtitle: { text: ''Source: WorldClimate.com'' }, xAxis: { categories: <?php echo json_encode($json_date,$row);?> }, yAxis: { min: 0, title: { text: ''Rainfall (mm)'' } }, legend: { layout: ''vertical'', backgroundColor: ''#FFFFFF'', align: ''center'', verticalAlign: ''top'', x: 100, y: 70 }, tooltip: { formatter: function() { return ''''+ this.x +'': ''+ this.y +'' Min''; } }, plotOptions: { column: { pointPadding: 0.2, borderWidth: 0 } }, series: [{ name: ''<?php echo join($customer, '', '');?>'', data: [<?php echo join($secondes, '', '');?>] }] }); }); </script> </head> <body> <!-- 3. Add the container --> <div id="container" style="width: 1300px; height: 500px; margin: 0 auto"></div> </body> </html>

El problema con este código es que solo muestra datos de un solo cliente, de modo que la consulta devuelve datos de varios Clientes.

este método es bueno o hay otra forma más fácil de hacerlo?