Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal,
eu tenho uma consulta feita em SQL usando inner join e em seguida fiz um while para trazer os resultados dessa consulta.
acontece que além de trazer esses resultados,
gostaria de contar quantos apartamentos tem dentro de um condominio.
usei a função mysql_num_rows e deu certo. me trouxe quantas linhas tem na tabela.
mais gostaria de saber, se tem como fazer uma comparação, e me mostrar quantos apartamentos tem em um condominio..
segue o código abaixo.
$pesquisar = "SELECT * FROM tb_cad_cli_condominio INNER JOIN tb_cad_cli_apartamento ON tb_cad_cli_condominio.pk_cli_condominio = pk_cli_condominio_id ORDER BY nome_predio";
$query = mysql_query($pesquisar);
$ultimo_nome_predio = "";
while ($dados = mysql_fetch_assoc($query)){
if ($ultimo_nome_predio != $dados['nome_predio'] ){
$nome = $dados['nome_predio']."<br />";
$ultimo_nome_predio = $dados['nome_predio'];
}
$nome_apartamento = $dados['nome_cliente_apartamento']."<br />";
// Criando array para passar ao smarty com os dados da consulta
$dados_array[] = array('nome_predio' => $nome,
'nome_cliente_apartamento' => $nome_apartamento);
}
valew galera..
e feliz 2011
>
while ($dados = mysql_fetch_assoc($query)){
if ($ultimo_nome_predio != $dados['nome_predio'] ){
$nome = $dados['nome_predio']."<br />";
$ultimo_nome_predio = $dados['nome_predio'];
}
$qtde[$dados['nome_predio']] = $qtde[$dados['nome_predio']] + 1;//aki conta
$nome_apartamento = $dados['nome_cliente_apartamento']."<br />";
// Criando array para passar ao smarty com os dados da consulta
$dados_array[] = array('nome_predio' => $nome,
'nome_cliente_apartamento' => $nome_apartamento);
}foreach($qtde as $condominio => $quantidade)
echo "Condomínio {$condominio} - quantidade = {$quantidade}<br>";
Victor Cometti, valew pelo post. Deu certo aqui, mas eu tenho uma tabela dentro desse while, conde vai mostrando os resultados formatados já.
e se eu colocar esse foreach dentro do while que só acaba no final da tabela, ele vai repetir muitas vezes o resultado, entendeu ?
gostaria de saber se tem outro jeito, para que eu possa colocar esse valor dentro de uma célula da tabela, e que ela possa ficar dentro do while.
se tiver uma ideia, posta aii...
Estou pesquisando também..
abraços!
não sei se vai funcionar, só uma idéia
while ($dados = mysql_fetch_assoc($query)){
if ($ultimo_nome_predio != $dados['nome_predio'] ){
//imprime se não for inicial
if(!empty($ultimo_nome_predio))
echo "Quantidade: {$qtde}<br>";
$nome = $dados['nome_predio']."<br />";
$ultimo_nome_predio = $dados['nome_predio'];
$qtde = 1;
}else
$qtde++;
$nome_apartamento = $dados['nome_cliente_apartamento']."<br />";
// Criando array para passar ao smarty com os dados da consulta
$dados_array[] = array('nome_predio' => $nome,
'nome_cliente_apartamento' => $nome_apartamento);
}>
não sei se vai funcionar, só uma idéia
while ($dados = mysql_fetch_assoc($query)){
if ($ultimo_nome_predio != $dados['nome_predio'] ){
//imprime se não for inicial
if(!empty($ultimo_nome_predio))
echo "Quantidade: {$qtde}<br>";
$nome = $dados['nome_predio']."<br />";
$ultimo_nome_predio = $dados['nome_predio'];
$qtde = 1;
}else
$qtde++;
$nome_apartamento = $dados['nome_cliente_apartamento']."<br />";
// Criando array para passar ao smarty com os dados da consulta
$dados_array[] = array('nome_predio' => $nome,
'nome_cliente_apartamento' => $nome_apartamento);
}
Victor, valew pelo post.
mais nao deu certo nao..
Fiquei sabendo que tem como trazer esse resultado em uma outra consulta pelo sql, usando group by, alguem tem ideia ? Valew
em outra query é tranquilo
aproveitando a sua query
SELECT
`nome_predio` as nome,
count(`nome_predio`) as qtde
FROM
`tb_cad_cli_condominio`
INNER JOIN
`tb_cad_cli_apartamento`
ON
`tb_cad_cli_condominio`.`pk_cli_condominio` = `pk_cli_condominio_id`
GROUP BY
`nome_predio`
ORDER BY
`nome_predio`
na hora de imprimir
while($linha = mysql_fetch_assoc($sql)){
echo "Prédio {$linha['nome']} - quantidade {$linha['qtde']}<br>";
}
while ($dados = mysql_fetch_assoc($query)){
//aki imprime