Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Veneroso

While PHP + MYSQL exibir tabela

Recommended Posts

Pessoal,

Tudo bem com vcs? Estou com um sério problema na exibição de dados de uma tabela. Preciso exibir dados de várias consultas do banco de dados mysql, separadas por colunas.

Segue o mais próximo que consegui, fica separado em coluna, porém aparece apenas o primeiro dado da tabela, com exceção do ultimo while que fica correto:

<table>

<?php while($listareceita = mysql_fetch_array($sqlreceita)){ ?>
<?php while($listalucro = mysql_fetch_array($sqllucro)){ ?>
<?php while($listalair = mysql_fetch_array($sqllair)){ ?>
<?php while($listapatrimonio = mysql_fetch_array($sqlpatrimonio)){ ?>
<?php while($listacaixa = mysql_fetch_array($sqlcaixa)){ ?>
<?php while($listaaplicacoes = mysql_fetch_array($sqlaplicacoes)){ ?>
<?php while($listadividacp = mysql_fetch_array($sqldividacp)){ ?>
<?php while($listadividalp = mysql_fetch_array($sqldividalp)){ ?>
<tbody>
<tr>
<td>
<?php echo $listareceita['nrValor'];?>
</td>
<td>
<?php echo $listalair['nrValor'];?>
</td>
<td>
<?php echo $listapatrimonio['nrValor'];?>
</td>
<td>
<?php echo $listacaixa['nrValor'];?>
</td>
<td>
<?php echo $listaaplicacoes['nrValor'];?>
</td>
<td>
<?php echo $listadividacp['nrValor'];?>
</td>
<td>
<?php echo $listadividalp['nrValor'];?>
</td>
</tr>
</tbody>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
</table>
Caso seja importante seque minha consulta ao MYSQL:

$sqlreceita = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '3.01' ORDER by CodBalanInd");
$sqllucro = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '3.11' ORDER by CodBalanInd");
$sqllair = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '3.07' ORDER by CodBalanInd");
$sqlpatrimonio = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.03' ORDER by CodBalanInd");
$sqlcaixa = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '1.01.01' ORDER by CodBalanInd");
$sqlaplicacoes = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '1.01.02' ORDER by CodBalanInd");
$sqldividacp = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.01.03' ORDER by CodBalanInd");
$sqldividalp = mysql_query("SELECT * FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.02.01' ORDER by CodBalanInd");


Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se só é a nrValor, porque vc tá dando um while para transformar em array?

 

Faça todos os sqls trazendo só o nrValor :

 

SELECT nrValor FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.03' ORDER by CodBalanInd

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo mysql_result() não consegui. Acho que só puxa uma determinada célula, no caso eu precisa de vários dados. Quanto ao Foreach estou pesquisando pra ver como utiliza...



Hive Pass
Só consegui utilizar o Foreach através de uma determinação com While, ai voltaríamos para o problema inicial. Como sugere?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
	function result_table($sql_result) {
		echo "<table><tbody>";
		while($row = mysql_fetch_array($sql_result) {
			echo "<tr><td>";
			echo $row["nrValor"];
			echo "</td></tr>";
		}
		echo "</tbody></table>";
	}
?>


<table>
<tbody>
<tr>
<?php result_table($sqlreceita); ?>
</td>
 
<td>
<?php result_table($sqllucro); ?>
</td>
 
<td>
<?php result_table($sqllair); ?>
</td>
 
<td>
<?php result_table($sqlpatrimonio); ?>
</td>

<td>
<?php result_table($sqlcaixa); ?>
</td>

 
<td>
<?php result_table($sqlaplicacoes); ?>
</td>
 
<td>
<?php result_table($sqldividacp); ?>
</td>
 
<td>
<?php result_table($sqldividalp); ?>
</td>
 
</tr>
</tbody>
</table>

coloquei uma tabela dentro de cada coluna, você vai ter que acertar o design com css...

 

sugiro que nas consultas sql troque * por nrValor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

Obrigado pela ajuda. Consegui fazer pelo seguinte método, ficou grandinho, mas funciona. Utilizei um while no header para cada select da seguinte forma

while($dadosreceita = mysql_fetch_array($sqlreceita)){
extract($dadosreceita);
$receita.='<table></tr>'.$dadosreceita['NrValor'].'</tr></table>';
}
Depois só da echo $receita

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites


 

<?php

$mysqli = new mysqli("host", "user", "pass", "db");

 

// CHECAR CONEXÃO

if (mysqli_connect_errno()) {

printf("Conexao bugada: %s\n", mysqli_connect_error());

exit();

}

 

// ISTO PODERIA FICAR DENTRO DO FOR, CASO OS DADOS DE CODEMPRESA E CODCONTA SIGAM UM PADRÃO

 

$sql = "SELECT nrValor as valorReceita FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '3.01' ORDER by CodBalanInd ;" .

"SELECT nrValor as valorLucro FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '3.11' ORDER by CodBalanInd ; " .

"SELECT nrValor as valorLair FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '3.07' ORDER by CodBalanInd ;" .

"SELECT nrValor as valorPatrimonio FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.03' ORDER by CodBalanInd ;" .

"SELECT nrValor as valorCaixa FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '1.01.01' ORDER by CodBalanInd ;" .

"SELECT nrValor as valorAplicacoes FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '1.01.02' ORDER by CodBalanInd ;" .

"SELECT nrValor as valorDividaCP FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.01.03' ORDER by CodBalanInd ;" .

"SELECT nrValor as valorDividaLP FROM balancoindividual WHERE CodEmpresa = 'PETR3' AND Codconta = '2.02.01' ORDER by CodBalanInd ;" ;

 

if ($mysqli->multi_query($sql)) {

echo '<table>' .

"<tbody>\n";

do {

if ($result = $mysqli->store_result()) {

echo "<tr>\n";

while ($row = $result->fetch_row()) {

echo "<td>{$row[0]}</td>\n" ;

}

$result->free();

print("</tr>\n");

}

 

} while ($mysqli->next_result());

echo '</tbody>' ;

'</table>';

}

 

?>

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.