Código:
¿ Como deberia resolver este problema ? <?php function consultarPagosMesEntreFechasGrafico($fecha_inicio, $fecha_fin) { $consulta = mysql_query("select id_pago,month(fecha_pago),monto from pagos where str_to_date(fecha_pago, '%Y-%m-%d') between '$fecha_inicio' and '$fecha_fin'"); $cantidad = mysql_num_rows($consulta); $monto_total = "0"; if (!$cantidad <= 0) { $monto_total = totalPagosEntreFechas($fecha_inicio, $fecha_fin); if (!is_numeric($monto_total)) { $monto_total = "0"; } } $titulo = "Cantidad de pagos entre fechas"; $subtitulo = "<b>Monto total entre fechas : </b>$" . $monto_total; $ids = array(); $Enero = 0; $Febrero = 0; $Marzo = 0; $Abril = 0; $Mayo = 0; $Junio = 0; $Julio = 0; $Agosto = 0; $Septiembre = 0; $Octubre = 0; $Noviembre = 0; $Diciembre = 0; $Monto_Enero = 0; $Monto_Febrero = 0; $Monto_Marzo = 0; $Monto_Abril = 0; $Monto_Mayo = 0; $Monto_Junio = 0; $Monto_Julio = 0; $Monto_Agosto = 0; $Monto_Septiembre = 0; $Monto_Octubre = 0; $Monto_Noviembre = 0; $Monto_Diciembre = 0; while ($resultado = mysql_fetch_array($consulta)) { $id_cliente = $resultado[0]; $mes_pago = $resultado[1]; $monto = $resultado[2]; if (!in_array($id_cliente, $ids)) { array_push($ids, $id_cliente); if ($mes_pago == 1) { $Enero++; $Monto_Enero = $Monto_Enero + $monto; } if ($mes_pago == 2) { $Febrero++; $Monto_Febrero = $Monto_Febrero + $monto; } if ($mes_pago == 3) { $Marzo++; $Monto_Marzo = $Monto_Marzo + $monto; } if ($mes_pago == 4) { $Abril++; $Monto_Abril = $Monto_Abril + $monto; } if ($mes_pago == 5) { $Mayo++; $Monto_Mayo = $Monto_Mayo + $monto; } if ($mes_pago == 6) { $Junio++; $Monto_Junio = $Monto_Junio + $monto; } if ($mes_pago == 7) { $Julio++; $Monto_Julio = $Monto_Julio + $monto; } if ($mes_pago == 8) { $Agosto++; $Monto_Agosto = $Monto_Agosto + $monto; } if ($mes_pago == 9) { $Septiembre++; $Monto_Septiembre = $Monto_Septiembre + $monto; } if ($mes_pago == 10) { $Octubre++; $Monto_Octubre = $Monto_Octubre + $monto; } if ($mes_pago == 11) { $Noviembre++; $Monto_Noviembre = $Monto_Noviembre + $monto; } if ($mes_pago == 12) { $Diciembre++; $Monto_Diciembre = $Monto_Diciembre + $monto; } } } $textos = array( "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ); $datos = array( $Enero, $Febrero, $Marzo, $Abril, $Mayo, $Junio, $Julio, $Agosto, $Septiembre, $Octubre, $Noviembre, $Diciembre ); $montos = array( $Monto_Enero, $Monto_Febrero, $Monto_Marzo, $Monto_Abril, $Monto_Mayo, $Monto_Junio, $Monto_Julio, $Monto_Agosto, $Monto_Septiembre, $Monto_Octubre, $Monto_Noviembre, $Monto_Diciembre ); $categorias = array(); $series = array(); for ($i = 0; $i <= count($textos) - 1; $i++) { $nombre = limpiar_datos_grafico($textos[$i]); $valor = $datos[$i]; $monto = $montos[$i]; if ($monto > 0) { $serie = array( 'name' => $nombre, 'y' => (int) $valor, 'z' => (int) $monto ); } else { $serie = array( 'name' => $nombre, 'y' => (int) $valor, 'z' => null ); } array_push($categorias, $nombre); array_push($series, $serie); } ?> <style type="text/css"> ${demo.css} </style> <script type="text/javascript"> $(function () { $('#container').highcharts({ chart: { type: 'bar' }, title: { text: '<?php echo $titulo; ?>' }, subtitle: { text: '<?php echo $subtitulo; ?>' }, xAxis: { categories: <?php echo json_encode($categorias); ?>, title: { text: 'Meses' } }, yAxis: { min: 0, title: { text: 'Cantidad de pagos', align: 'high' }, labels: { overflow: 'justify' } }, tooltip: { useHTML: true, formatter: function() { if(this.point.z==null) { return '<b>Cantidad de pagos : </b>'+this.point.y; } else { return '<b>Cantidad de pagos : </b>'+this.point.y+'<br><b>Monto : </b>'+'$'+this.point.z; } }}, plotOptions: { series: { dataLabels:{ enabled:true, formatter:function(){ if (this.point.z === 0 || this.point.z === null) { return ''; } else { return '$'+this.point.z; } } },events: { legendItemClick: function () { return false; } } } }, legend: { reversed: true }, credits: { enabled: false }, series: [{ name:'Cantidad de pagos', data: <?php echo json_encode($series); ?> }] }); }); </script> </head> <body> <script src="chart/js/highcharts.js"></script> <script src="chart/js/modules/exporting.js"></script> <div id="container" style="width: 700px; height: 400px;"></div>