Ir para conteúdo

POWERED BY:

Arquivado

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

horacio2009

[Resolvido] classe funciona até chamar uma função...

Recommended Posts

bom dia a todos!!!

pessoal, seguinte...

criei essa classe e ela funciona corretamente, até o momento que eu chamo a função "NomeDoOp" através do comando "$nomedooperador=NomeDoOp($relacao);"...o problema é(creio eu) a posição da função, pois ela também funciona sem qualquer problema...tanto funciona, que se linkar o arquivo externo e chamar a mesma função do mesmo jeito, funciona certinho...

Enfim, pessoal, por favor, deem uma olhada e vejam como posso resolver essa...eu quero que essa classe retorne os dados de forma independente de qualquer outro arquivo...e ainda estou apanhando um pouco com essa função!!!

Bom, pessoal, é isso, muito obrigado por esse e pelos demais tópicos respondidos!!

obrigado também pela atenção constante!!!

Valeu, galera!!

abraço a todos do forum!!

Horácio

 

<?php 
class classeranking
{
  public function ranking($montadora)
    {
include 'datas_veri.php';
include 'usuarios_bloqueados.php';
$query="SELECT * FROM negociacao WHERE relacao in('$montadora')AND contrato not in('') AND pago BETWEEN '$data1' AND '$data2' order by contrato";
$tab=mysql_query("$query");
$linhas=mysql_num_rows($tab);
$x="0";
for($x;$x<$linhas;$x++)
{
$relacao=mysql_result($tab,$x,'relacao');
$codigo=mysql_result($tab,$x,'codigo');
$contrato=mysql_result($tab,$x,'contrato');
$varContrato.="'$contrato',";
}
$varContratros="$varContrato '1233333333'";
//já descobri quais os contratos provem da montadora mencionada, agora, vou fazer os caculos referentes aos mesmos
$queryvalor = mysql_query("Select SUM(valor)as minha_soma, relacao FROM controle_clientes WHERE contrato in($varContratros)AND contrato not in('') AND mostrar='s' GROUP BY relacao")or die(mysql_error());
$linhas=mysql_num_rows($queryvalor);
$x="0";
for($x;$x<$linhas;$x++)
{
   $relacao=mysql_result($queryvalor,$x,'relacao');
$minha_soma=mysql_result($queryvalor,$x,'minha_soma');
   $contratoDoCliente=mysql_result($tab,$x,'contrato');
   $solicitante=mysql_result($tab,$x,'solicitante');
$nomedooperador=NomeDoOp($relacao);
   $resultado.="$nomedooperador - $minha_soma<br>";
   }
 return $resultado;
   }
        private function NomeDoOp($operador)
        {  
        $query="SELECT * FROM dados_controle WHERE codigo_venda='$operador'";
        $tab=mysql_query("$query");
        $linhas=mysql_num_rows($tab);
        $x="0";
        for($x;$x<$linhas;$x++)
        {
        $operador=mysql_result($tab,$x,'nome');
        }
        $NomeOperador="$operador";
        return $NomeOperador;
        }

}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte horácio, como você pode ver, esta função NomeDoOp é uma função private, quer dizer que só essa classe pode chama-la.

 

Você está fazendo assim

$nomedooperador=NomeDoOp($relacao);

 

Troque essa linha .. por essa abaixo

 

$nomedooperador=$this->NomeDoOp($relacao);

 

Pois o metódo NomeDoOp está dentro da mesma classe, então use o objeto $this para executar os metódos dentro da classe!

 

Certamente ira funcionar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, funcionou certinho!! MUITO OBRIGADO!!!

acho que entendi o principio...sempre que houver funções dentro da classe e precisar chama-las, uso o this!!!!

caraca...muito fácil trabalhar com classes, não é???

to aprendendo classe em php e to achando muito legal!!!

(pouca coisa diferente de JAVA, mas mesmo assim, legal da mesma forma)

Valeu pela força, galera!!!

Grande abraço a todos!!

Horácio

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.