Ir para conteúdo
Fórum Script Brasil
  • 0

Contando resultados


Montano

Pergunta

$sql = "select * from tb_contrato where mes = janeiro and produto = PME";

$result = mysql_query($sql);

$linha = mysql_num_rows($result);

$reg = mysql_fetch_row($result);

bom dia.. esse select me gera um relatorio de contratos.

estou querendo separar o resultado dessa consulta por cidade e situação, e contando elas.

EX:

se eu encontrar 3 situaçoes de ativada, 4 cancelada, em rio de janeiro. ele ira me mostrar.

Rio de janeiro: 3 ativadas, 4 canceladas, 0 pendentes, .

e assim por diante..

OBS: as situaçoes são fixas no BD, como podem ver mesmo não achando nenhuma pendente ele mostro que tem 0.

mas as cidades só pode ser mostrada as que vem do meu select la de cima.

OBEJTIVO: pegar as cidades achadas na consulta, e contar quantas situaçoes tem para aquela cidade, e retorna isso para tela.

obrigado pela ajuda, eu estou pensando em fazer um select na minha tb_situaçoes para pegar todas elas, e usar como wherer para as cidades que ele achar.

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Montano'

Como você não informou o nome dos campos estou usando idsituacao para o atributo que representa a chave primária em tb_situaçoes e, também a chave estrangeira em tb_contrato.

SELECT c.idcontrato, c.cidade, s.nomesituacao, count(c.idsituacao) AS qtsituacao
FROM tb_contrato c
INNER JOIN tb_situaçoes s ON s.idsituacao = c.idsituacao 
GROUP BY c.cidade, c.idsituacao

basicamente é isso que você precisa.

Link para o comentário
Compartilhar em outros sites

  • 0

oi ...

eu tenho a tb_contrato (onde nela tem campo: cod_contrato, cidade, situacao)

tenho tb_situacao (onde nela tem campo: cod_situacao, situacao)

tenho tb_cidade(onde nela tem campo: cod_cidade, cidade)

nunca trabalhei com JOIN e usando esse tipo de select. você poderia substituir com os meus campos? só pra mim entender.

Eu preciso só juntar as informaçoes que vem de um outro select. digamos que esse select selecionou cidade SP e RJ do mes 12. então eu tenho que mostrar quantas de cada situaçao tem em SP e quantas tem em RJ em mes 12.

o primeiro select já ta feito, ele faz qualquer tipo de consulta no BD. falta agora eu organizar só o resultado dessa consulta, separando por cidade e situaçao. mas é importante eu manter a consulta feita. digo, tendo importancia o mes escolhido e etc.

brigado a ajuda que ta me dando.

Editado por Montano
Link para o comentário
Compartilhar em outros sites

  • 0

e se eu usasse um group e um count..

tipo assim:

$sql = "select situacao, COUNT(*) from tb_contrato where $consulta GROUP BY cidade";

ObS: $consulta muda conforme o usuario muda a data que ele qeh buscar, o produto e etc.

aqui não consegui da echo no resultado.. apareceu monte de X;

mas sera uq estou no caminho?

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'Montano'

Pelo que entendi você não normalizou corretamente a tabela tb_contrato deixando que os atributos situação e cidade fossem descritivos, quando deveria ter deixado o cod_situacao e o cod_cidade, respectivamente, para representar estes atributos nesta tabela. Se este meu entendimento estiver correto, então não há a necessidade do uso de join, ficando o seu código assim:

SELECT cod_contrato, cidade, situacao, count(situacao) AS qtsituacao
FROM tb_contrato 
GROUP BY c.cidade, c.idsituacao
WHERE cidade = 'RJ' AND Produto = 'PME'

Link para o comentário
Compartilhar em outros sites

  • 0

$sql="SELECT cidade, situacao, count(situacao) AS qtsituacao

FROM tb_contrato

GROUP BY c.cidade, c.idsituacao

WHERE $consulta";

$result = mysql_query($sql);

$ver_teste = mysql_fetch_array($result);

echo $ver_teste["qtsituacao"];

tentei isso..

deu esse erro:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\embratel\resumo.php on line 263

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, Montano!

Em resposta ao post anterior onde você pergunta:

denis, idsituacao, e qtsituacao, você ta determinando ou eu tenho que ter esses campos na tabela?
Eu não estou determinando que você tenha que ter estes campos na tabela tb_consulta. Apenas disse que a tabela não está normalizada. Foi construída de forma errada. Eu quiz dizer que os atributos (campos) cod_situacao e cod_cidade deveriam estar na tabela em vez dos atributos situãcao e cidade, respectivamente.

Quanto a resposta do posta acima, em:

$sql="SELECT cidade, situacao, count(situacao) AS qtsituacao

FROM tb_contrato

GROUP BY c.cidade, c.idsituacao

WHERE $consulta";

$result = mysql_query($sql);

$ver_teste = mysql_fetch_array($result);

echo $ver_teste["qtsituacao"];

tentei isso..

deu esse erro:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\embratel\resumo.php on line 263

Não conheço nada de PHP, como já falei antes em outros tópicos, por isso pergunto: O PHP aceita linha quebrada, tal como no select acima que inicia em uma linha e termina 3 linhas depois?

Que tipo de condição você colocou na variável $consulta?

A resposta a uma ou as duas perguntas esclarecerão o erro acima.

Link para o comentário
Compartilhar em outros sites

  • 0

$sql="SELECT cidade, situacao, count(situacao) AS situacao FROM tb_contrato WHERE $consulta GROUP BY cidade, situacao";

$result = mysql_query($sql);

se eu por assim não da erro..

mas n estou conseguindo ler o Count..

$sql="SELECT cidade, situacao, count(situacao) AS situacao FROM tb_contrato WHERE $consulta GROUP BY cidade, situacao";

$result = mysql_query($sql);

$linha = mysql_num_rows($result);

$reg = mysql_fetch_row($result);

for ($i=0;$i<$linha;$i++)

{

$reg = mysql_fetch_row($result);

echo $reg[0];

echo $reg[1];

}

e desse jeito ele me mostra os resultados mas n a quantidade q ele contou.

respondendo sua pergunta: dentro da $consulta ta produto = "PME".

$sql="SELECT cidade, situacao, count(situacao) AS qtsituacao FROM tb_contrato WHERE $consulta GROUP BY c.cidade, c.idsituacao ";

se eu usar o que você me passou ele da esse erro: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\embratel\resumo.php on line 261

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\embratel\resumo.php on line 262

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'Montano'

O count ou contagem de registro é representado pela expressão count(situacao).

O resultado desta expressão está representado pelo atributo qtsituacao.

Então, qtsituacao é um atributo criado em tempo de execução para mostrar o resultado de count(situacao).

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'Montano'

O count ou contagem de registro é representado pela expressão count(situacao).

O resultado desta expressão está representado pelo atributo qtsituacao.

Então, qtsituacao é um atributo criado em tempo de execução para mostrar o resultado de count(situacao).

oi denis,

to pesquizando faz horas, e não consigo achar a maneira de ler esse qtsituaçao. para pegar a quantidade de situaçoes que ele contou.

Link para o comentário
Compartilhar em outros sites

  • 0

Pare ler isso dai é só fazer como qualquer campo...

$sql="SELECT cidade, situacao, count(situacao) AS qtsituacao FROM tb_contrato WHERE $consulta GROUP BY cidade, situacao ";
$result = mysql_query($sql);

$dados = mysql_fetch_assoc($result);

echo $dados['qtsituacao'];

Mude aquele for lá de cima por um while e use o que eu te passei...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...