Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Digamos que você tenha uma tabela com o cadastro de carros,
sendo estes, cada um com uma cor difere.
E você precisa informar na tela a quantidade de carros por cores.
Carros: Verde (x) Amarelo (x) Vermelho (x)
Estou fazendo assim:
<?php
$busca_cor_amarela = mysql_query("SELECT id FROM carros WHERE cor='amarelo'");
$campos_cor_amarela = mysql_num_rows($busca_cor_amarela);
$busca_cor_verde = mysql_query("SELECT id FROM carros WHERE cor='verde'");
$campos_cor_verde = mysql_num_rows($busca_cor_verde);
$busca_cor_vermelho = mysql_query("SELECT id FROM carros WHERE cor='vermelho'");
$campos_cor_vermelho = mysql_num_rows($busca_cor_vermelho);
echo $campos_cor_ ... ;
?>
A pergunta é: Qual a melhor forma de se contar registros?
Teria alguma forma de se fazer uma busca dessas apenas em uma unica consulta? como?
Isso aplicado a POO como seria uma classe para isso? alguem teria um exemplo para postar?
Obrigado.
William Bruno, muito obrigado.
Mas...
Como eu exibo isso? Como eu sei que o valor x é da cor y
ty
$sql = "SELECT COUNT( `id` ) AS qnt, cor FROM `carros` GROUP BY `cor`";
$query = mysql_query( $sql )or die( mysql_error() );
while( $dados = mysql_fetch_object( $query ) )
echo 'Existem '.$dados->qnt.' carro(s) com a cor '.$dados->cor.'<br />';
só isso.
Aproveitando da sua boa vontade,
digamos que eu queira manipular a posição dos resultados colocando-os
em lugares que não seria possivel a aplicação de um loop.
Tem como?
? não entendi.
poste o html final do que você pretende (apenas html).
o problema não é o html.
Eu preciso colocar o valor correspondente a cor em uma variavel para executar algumas outras funções.
E não pode ser dinamico, eu precisa saber realmente o valor para uma cor especifica.
Colocando ele em um while eu não consigo saber oq é oq entende...
A nao ser na tela que ai sim aparece a informações.
Como o exemplo que eu dei no 1º post, eu sei que para cada consulta eu tenho uma variavel especifica.
Isso tbm é possivel com a consulta que você me passou?
enfim, não sei.
mostre uma imagem ou o HTML do que você pretende, se não fica dificil ajudar.
procure por variaveis variaveis
ou então, algo um pouco mais simples:
$cores = Array();
while( $dados = mysql_fetch_object( $query ) )
$cores[ $dados->cor ] = $dados->qnt;
entendeu ?
agora você tem um Array com as cores. Cada posição do array, é uma cor. E o valor de cada posição é a quantidade de carros daquela cor.
exemplo, se você tiver 15 carros amarelos..
echo $cores['amarelo'];//vai sair 15
entendeu ?
SELECT COUNT(
id) AS qnt, cor FROMcarrosGROUP BYcor