kadunit 4 Denunciar post Postado Fevereiro 4, 2016 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
Massaki 47 Denunciar post Postado Fevereiro 5, 2016 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
kadunit 4 Denunciar post Postado Fevereiro 5, 2016 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
rockrgo 138 Denunciar post Postado Fevereiro 5, 2016 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
kadunit 4 Denunciar post Postado Fevereiro 5, 2016 Rock, Como eu faria isso? La na função eu retorno o $resultado e no código uso o $resultado. Está errado? Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Fevereiro 5, 2016 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
kadunit 4 Denunciar post Postado Fevereiro 5, 2016 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
rockrgo 138 Denunciar post Postado Fevereiro 5, 2016 da um print na $query dentro da função. Compartilhar este post Link para o post Compartilhar em outros sites
kadunit 4 Denunciar post Postado Fevereiro 5, 2016 $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
BoinaVerde 16 Denunciar post Postado Fevereiro 5, 2016 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
kadunit 4 Denunciar post Postado Fevereiro 7, 2016 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