Ir para conteúdo

POWERED BY:

Arquivado

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

kadunit

Function

Recommended Posts

Boa noite pessoal,

 

Estou com um problema na minha function:

function consultaTotalPorResposta ($resposta,$filial,$indice_pesquisa)
	{
 		$query = mysql_query("
		select  SUM(CASE WHEN '{$resposta}' = 'Excelente' THEN 1 ELSE 0 END) as total_excelente,
	   		SUM(CASE WHEN '{$resposta}' = 'Muito Bom' THEN 1 ELSE 0 END) as total_muito_bom,
       			SUM(CASE WHEN '{$resposta}' = 'Regular' THEN 1 ELSE 0 END) as total_regular,
      		        SUM(CASE WHEN '{$resposta}' = 'Ruim' THEN 1 ELSE 0 END) as total_ruim,
      		        SUM(CASE WHEN '{$resposta}' = 'Muito ruim' THEN 1 ELSE 0 END) as total_muito_ruim
		from perguntas
		where filial = '{$filial}' and 
		indice_pesquisa = '{$indice_pesquisa}';");

 		$resultado = mysql_fetch_assoc($query);
 		return $resultado;
	}

A chamada da function está ocorrendo da seguinte maneira:

consultaTotalPorResposta('r1','Filial 01',$indice_pesquisa);
echo $resultado["total_excelente"];

a variavel $indice_pesquisa vem do arquivo de configuração, carregado no inicio da pagina.

Não consigo mostrar o valor do campo total_excelente.

Estou fazendo algo de errado?

Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT $resposta, count({$resposta}) AS total FROM perguntas WHERE filial = '{$filial}' AND indice_pesquisa = '{$indice_pesquisa}' GROUP BY {$resposta}

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT $resposta, count({$resposta}) AS total FROM perguntas WHERE filial = '{$filial}' AND indice_pesquisa = '{$indice_pesquisa}' GROUP BY {$resposta}

 

 

Massaki, bom dia!

 

O meu select está funcionando ( quando eu troco manualmente as clausulas do PHP ) o problema é que quando chamo a função na pagina como demonstrei, não acontece nada. Não está funcionando.

 

o echo $resultado["total_excelente"]; não está mostrando a variavel.

 

Fiz alguma coisa errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua função retorna um resultado, então você deve armazenar esse retorno em algum lugar, ou seja, em uma variável.

$resultado = consultaTotalPorResposta('r1','Filial 01',$indice_pesquisa);
echo $resultado["total_excelente"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha como está o trecho que postei e olha o seu

 

Como fiz

$resultado = consultaTotalPorResposta('r1','Filial 01',$indice_pesquisa);

como o seu está

consultaTotalPorResposta('r1','Filial 01',$indice_pesquisa);

No seu código vc simplesmente chama a função, mas não armazena em nenhuma variável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rock,

 

Me desculpa! Acabei não vendo a mudança que você havia postado.

 

Fiz as alterações aqui e apareceu um ZERO na página, pelo menos apareceu alguma coisaa o/

 

A resposta seria um 3, como eu faço pra ver a query qye está sendo executada? Provavelmente é um erro nela ne? usei o echo da mesma maneira com suas alterações

 

echo $resultado["total_excelente"];

Compartilhar este post


Link para o post
Compartilhar em outros sites
$query = mysql_query("
            select        SUM(CASE WHEN '{$resposta}' = 'Excelente' THEN 1 ELSE 0 END) as total_excelente,
                          SUM(CASE WHEN '{$resposta}' = 'Muito Bom' THEN 1 ELSE 0 END) as total_muito_bom,
                          SUM(CASE WHEN '{$resposta}' = 'Regular' THEN 1 ELSE 0 END) as total_regular,
                          SUM(CASE WHEN '{$resposta}' = 'Ruim' THEN 1 ELSE 0 END) as total_ruim,
                          SUM(CASE WHEN '{$resposta}' = 'Muito ruim' THEN 1 ELSE 0 END) as total_muito_ruim
            from perguntas
            where filial = '{$filial}' and 
            indice_pesquisa = '{$indice_pesquisa}';");

            print $query;

assim?

 

tive o erro Resource id #14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria assim para saber como esta ficando o meu select

$sql = "select        SUM(CASE WHEN '{$resposta}' = 'Excelente' THEN 1 ELSE 0 END) as total_excelente,
                          SUM(CASE WHEN '{$resposta}' = 'Muito Bom' THEN 1 ELSE 0 END) as total_muito_bom,
                          SUM(CASE WHEN '{$resposta}' = 'Regular' THEN 1 ELSE 0 END) as total_regular,
                          SUM(CASE WHEN '{$resposta}' = 'Ruim' THEN 1 ELSE 0 END) as total_ruim,
                          SUM(CASE WHEN '{$resposta}' = 'Muito ruim' THEN 1 ELSE 0 END) as total_muito_ruim
            from perguntas
            where filial = '{$filial}' and 
            indice_pesquisa = '{$indice_pesquisa}';");
echo $sql."<br/>";
$query = mysql_query($sql);
$resultado = mysql_fetch_assoc($query);
return $resultado;

Outra coisa... não sei se é o caso... mas nessa linha

 indice_pesquisa = '{$indice_pesquisa}';");

Tira o ";"

 indice_pesquisa = '{$indice_pesquisa}'");

Acho que não tem problema, mas váaa née

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda!

 

Quando imprimi a query, verifiquei aspas adicionais, retirei as aspas e tudo funcionou!

 

Obrigado pela ajuda pessoal!

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.