Ir para conteúdo

POWERED BY:

Arquivado

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

Atos William Pontes

Buscar dados de BD's diferentes e exibir na mesma tabela(foreach)

Recommended Posts

Bom dia,

Preciso de uma solução para meu problema.

 

Estou montando uma tabela (html/boostrap) para exibir meus dados do BD. Estes dados serão impressos, como se fosse relatório.

Uso um foreach para listar todos os dados. Porém, para montar essa tabela funcional preciso buscar dados que são fornecidos pela API de pagamento digital, são informações que não tem no meu BD, tipo data de vencimento da fatura, valores, data de criação da fatura, entre outros. Não estou conseguindo organizar/usar os foreach para trazer as informações corretamente, as informações da API são impressas todas de uma vez a cada linha.

 

Solução?

Se eu buscasse esses dados e gravasse no meu BD também resolveria, mas, é o correto?

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre como fez e explique como gostaria que ficasse.

 

 

Se eu buscasse esses dados e gravasse no meu BD também resolveria, mas, é o correto?

Desde que não salve informações sensíveis, como números de cartão, não tem problema.

Se tiver que consultar a API para cada registro, o tempo de carregamento dessa tabela ficará enorme

Compartilhar este post


Link para o post
Compartilhar em outros sites
foreach ($data['clients'] as $linha) {
	
			echo '<tr>';
			echo '<td>' . $linha->id . '</td>';
			echo '<td>' . $linha->full_name . '</td>';
			echo '<td>' . strtoupper($especialidades[$linha->specialty]) . '</td>';
			echo '<td>' ;
			foreach ($data['finance'] as $finance) {
				echo $finance->created_at;
			}
			echo '</td>'; 

O primeiro foreach é do meu BD e o segundo da API.

 

O resultado é que na td do 2º foreach ele traz todas as informações em apenas 1 linha de "aluno".

 

(não sei postar imagem aqui...)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como gostaria que ficasse?

Está assim pois a td é aberta antes do loop e fechada depois. Se quiser uma td pra cada registro, coloque-a dentro do foreach

 

 

pra postar imagem, use o botão de Imagem, que é uma "árvore", ao lado do botão de código

Compartilhar este post


Link para o post
Compartilhar em outros sites

ny5reo.jpg

 

Perceba ai que a cada linha ele me traz todas as datas de faturas...

Eu queria que ele trouxesse uma por linha.

 

Acho que o melhor seria trazer essas informações pro meu BD, assim eu conseguiria afirmar que a data retornada pertence ao aluno retornado. Como esta eu nao consigo gerenciar isso. certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o melhor seria trazer essas informações pro meu BD, assim eu conseguiria afirmar que a data retornada pertence ao aluno retornado. Como esta eu nao consigo gerenciar isso. certo?

Provavelmente a API permite filtrar por algum tipo de identificador. Leia a documentação dela pra saber como filtrar. Você deve criar algum vínculo entre aluno e fatura, pra poder fazer a filtragem

 

Armazenar isso localmente deixará sua aplicação mais rápida, com certeza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de montar o html, monte o array (juntar o array da api com o array do seu db)

 

você faz um foreach no seu array do bd, adicionando neste array o valor do array correspondente que vem da api.

no primeiro loop adiciona o primeiro valor api array, no primeiro valor do seu bd array

no segundo, o segundo valor da array api no seu segundo array db

assim ate o fim do array

 

acho que essas funcoes vao ser util

http://php.net/manual/en/function.next.php

http://php.net/manual/en/function.array-push.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente a API permite filtrar por algum tipo de identificador. Leia a documentação dela pra saber como filtrar. Você deve criar algum vínculo entre aluno e fatura, pra poder fazer a filtragem

 

Armazenar isso localmente deixará sua aplicação mais rápida, com certeza

Tem o filtro sim. Em outra parte da aplicação tenho uma pg de "detalhes do aluno" nela eu busco os dados individualizados.. tenho como criar fatura, deletar fatura, ver datas e tudo mais... porem é uma tela individual. Neste modo de listar todos eu não penso como seria fazer o filtro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só usar a ideia que o Electronic passou. Você terá um array de alunos e um array de faturas. No loop que exibe os alunos, busque no array de faturas pelas faturas correspondentes àquele aluno apenas

 

Se estivesse no seu banco local, um simples JOIN daria conta disso sem dificuldade

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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