Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rd111072

[Resolvido] Array dinâmico diferenciado

Recommended Posts

Olá, Rapaziada! Peço a ajuda de vocês!

Seguinte, como monto um array exatamente no formato abaixo, mas com dados dinâmicos, vindos do BD?

var day_data = [
  {"period": "2017-02-01", "1": 28.5, "2": 0, "3": 0},
  {"period": "2017-02-15", "1": 23.2, "2": 0, "3": 27.0},
  {"period": "2017-02-04", "1": 0, "2": 29.0, "3": 27.0}
 
];

Os dados dinâmicos vão entrar depois dos dois pontos, em cada linha. Cda linha é uma data. As data s serão datas DISTINCT vindas do BD.
1,2 e 3 serão ids de usuários. Mas poderá ter até 1000 usuários, por exemplo.

É pra popular um gráfico de linhas múltiplas.

Quem sabe como fazer?
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala camarada, boa noite.

 

Você tem duas opções:

 

1 - Fazer o select nos dados e retornar o array JSON neste formato.

2 - Você pode preencher essas linhas direto na página colocando num laço loop que traz os dado.

 

O array no php seria montado da seguinte forma:

$arr = array('period'=>'2017-02-01','1'=>28.5,'2'=>0,'3'=>0);
echo json_encode($arr);

//SAÍDA

//{"period": "2017-02-01", "1": 28.5, "2": 0, "3": 0}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O array ficaria estruturado dessa maneira:

$day_data = array(
	array(
		'periodo' => '2017-02-01',
		'usuarios' => array(
				1 => 28.5,
				2 => 0,
				3 => 0
			)
	)
);

Como fazer esse array com os dados dinâmicos do banco de dados eu teria que ver suas consultas ao banco.

Está pegando todos esses dados apenas uma consulta?

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, Luciano Carvalho disse:

O array ficaria estruturado dessa maneira:


$day_data = array(
	array(
		'periodo' => '2017-02-01',
		'usuarios' => array(
				1 => 28.5,
				2 => 0,
				3 => 0
			)
	)
);

Como fazer esse array com os dados dinâmicos do banco de dados eu teria que ver suas consultas ao banco.

Está pegando todos esses dados apenas uma consulta?

Pois é. Ainda vou fazer o select. Tem alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites
12 minutos atrás, Alaerte Gabriel disse:

Fala camarada, boa noite.

 

Você tem duas opções:

 

1 - Fazer o select nos dados e retornar o array JSON neste formato.

2 - Você pode preencher essas linhas direto na página colocando num laço loop que traz os dado.

 

O array no php seria montado da seguinte forma:


$arr = array('period'=>'2017-02-01','1'=>28.5,'2'=>0,'3'=>0);
echo json_encode($arr);

//SAÍDA

//{"period": "2017-02-01", "1": 28.5, "2": 0, "3": 0}

 

Pois é, me falta saber como fazer o select, pois a estrutura do Banco não é essa. Tem a coluna do id do usuário, das datas, e dos valores decimais, em cada registro...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, exatamente, você terá que montar. Independente de como esteja sua estrutura, se ela possui esses dados, então está tudo bem.

 

no seu select, se eu entendi bem, (suponho que esteja utilizando PDO) você faria algo como:

$a = $pdo->query("SELECT * FROM usuarios");


$arr=array();
   
    while($ver = $a->fetch(PDO::FETCH_ASSOC)){
        $arr['periodo'] = $ver['campo_data'];
        $arr[$ver['campo_id_usuario']] = 0; //Aqui você colocaria o nome da coluna responsável por atribuir o valor
    }
    echo json_encode($arr);


 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, Luciano Carvalho disse:

Tem como postar um print de como está o banco hoje?

Colunas, linhas, etc?

Segue o print com a estrutura da table usuarios_consumo:

 

tabela.usuarios_consumo.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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