Ir para conteúdo
Nozaki777

Gerar gráficos com Google charts

Recommended Posts

Boa noite pessoal,

Iniciei testes com o google charts para gerar gráfico a partir de dados vindo direto do banco Mysql. Os gráficos estavam saindo tudo dentro do script, o problema começa a surgir quando o campo "especie" recebe nomes iguais! Por exemplo: o meu formulário tem o campo "especie" e "kg", a cada nova espécie cadastrada no banco, ela aparece no gráfico do google charts. Quando eu cadastro uma espécie que já está no campo, no gráfico aparece dois nomes iguais com valores do campo "kg", diferentes. Gostaria de saber se há a possibilidade de aparecer no gráfico apenas uma vez o nome do campo "especie" e somar todos os valores do campo "kg"?

Segue, abaixo o meu código:

Spoiler

<?php
include_once('conexao.php');
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
  }
  $result = $conn->query('SELECT * FROM desembarque_cadastro');

  $rows = array();
  $table = array();
  $table['cols'] = array(

    array('label' => 'Espécie', 'type' => 'string'),
    array('label' => 'Quantidade (kg)', 'type' => 'number')

);
    foreach($result as $r) {

      $temp = array();

      $temp[] = array('v' => (string) $r['especie']); 

      $temp[] = array('v' => (int) $r['kg']); 
      $rows[] = array('c' => $temp);
    }

$table['rows'] = $rows;

$jsonTable = json_encode($table);
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez assim

 

'SELECT * FROM desembarque_cadastro GROUP BY especie SUM(kg) as kilo'

 

aí no lugar de $r['kg'] coloca $r['kilo']

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Eduardo Rocha Kmiecik
      Olá a todos, ESTOU COM UM PROBLEMÃO e preciso muito da ajuda de vocês!! Faz duas semanas que estou pesquisando como fazer um gráfico e integra-lo ao meu banco de dados. Tentei de várias e várias formas porém não consegui. Preciso gerar um gráfico com a quantidade de viagens realizada por dia para os determinados locais "puma", "MA" e "diversos".  Gostaria de utilizar o between também para definir o período da pesquisa.
      Não tenho ideia de onde colocar as variáveis, ou se minha busca sql esta correta ME DA UM HELP, ficarei super grato 
      <form method="post" action=""> <label>Data incial:</label> <input id="dataInicial" name="dataInicial" type="date" required="" > <label>Data final:</label> <input id="dataFinal" name="dataFinal" type="date" required="" > <button id="enviar" name="enviar" class="btn btn-primary">Enviar </button> </form> <?php $servidor = "localhost"; $usuario = "root"; $senha = ""; $dbname = "controlebaldeio"; //Criar a conexao $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); if(!$conn){ die("Falha na conexao: " . mysqli_connect_error()); }else{ //echo "Conexao realizada com sucesso"; } $dataInicial = $_POST['dataInicial']; $dataFinal = $_POST['dataFinal']; $result_usuario = "SELECT local, sum(quantidade) as quantidade FROM registro WHERE dataViagem BETWEEN '$dataInicial' AND '$dataFinal' GROUP BY local"; $resultado_usuario = mysqli_query($conn, $result_usuario); while($row_usuarios = mysqli_fetch_assoc($resultado_usuario)){ $local = $row_usuarios['local']; $quantidade = $row_usuarios['quantidade']; $dataViagem = $row_usuarios['dataViagem'].; } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Documento sem título</title> </head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['line']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('number', 'Dia'); data.addColumn('number', 'PUMA'); data.addColumn('number', 'MA'); data.addColumn('number', 'DIVERSOS'); data.addRows([ [1, 37.8, 8, 41.8], [2, 30.9, 69.5, 32.4], [3, 25.4, 57, 25.7], [4, 11.7, 18.8, 10.5], [5, 11.9, 17.6, 10.4], [6, 8.8, 13.6, 7.7], [7, 7.6, 12.3, 9.6], [8, 12.3, 29.2, 10.6], [9, 16.9, 42.9, 14.8], [10, 12.8, 30.9, 11.6], [11, 5.3, 7.9, 4.7], [12, 6.6, 8.4, 5.2], [13, 4.8, 6.3, 3.6], [14, 4.2, 6.2, 3.4] ]); var options = { chart: { title: 'RELATÓRIO DE VIAGENS', }, width: 900, height: 500, axes: { x: { 0: {side: 'top'} } } }; var chart = new google.charts.Line(document.getElementById('line_top_x')); chart.draw(data, google.charts.Line.convertOptions(options)); } </script> <body> <div id="line_top_x"></div> </body> </html>  

    • Por Thiago Lenzi
      Bom dia pessoal.
       
      Tenho esse array:
      array (size=3) 'Bruno' => array (size=4) 'Matematica' => int 41 'Fisica' => int 46 'Portugues' => int 34 'Algebra linear' => int 71 'Ana Paula' => array (size=4) 'Matematica' => int 70 'Fisica' => int 90 'Portugues' => int 88 'Algebra linear' => int 100 'Carol' => array (size=4) 'Matematica' => int 95 'Fisica' => int 90 'Portugues' => int 76 'Algebra linear' => int 99 E preciso acessa lo de forma ordenada para alimentar esse gráfico.
      var data = google.visualization.arrayToDataTable([ ['NomeMatérias', 'NomeAluno1', 'NomeAluno2', 'NomeAluno3', '...' ], ['Matéria1', nota1, nota1, nota1, ... ], ['Matéria2', nota2, nota2, nota2, ... ], ['Matéria3', nota3, nota3, nota3, ... ], ['Matéria4', nota4, nota4, nota4, ... ] ]); Minha dúvida é como acessar o Vetor/array e alimentar o código acima para a construção do gráfico fornecido pelo Google.
       
      Gráfico funcionando no Google.
      https://google-developers.appspot.com/chart/interactive/docs/gallery/combochart
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.