Ir ao conteúdo
  • Cadastre-se

Gláuber Guilherme Signori

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

posts postados por Gláuber Guilherme Signori

  1. [RESOLVIDO] [dúvida/auxílio] PHP Problema com função de zipar e baixar arquivos... Ao invés de baixar está printando na tela o documento '¬¬... acredito que o problema está no Forcedownload... algo em relação a função header() ou readfile()... Porém, ao testar localmente só a parte de download funciona... porém quando jogo na minha aplicação web da pau (trabalho com include de páginas e tal, será que é isso?)... alguém poderia me dar uma luz, o que preciso ajustar?

    Sem título2.png

    Sem título.png

  2. Caros boa noite, estou com uma dúvida

     

    Preciso de ajuda no $sql3 ou reformular a minha lógica:

    Atualmente estou fazendo assim:

    1. Encontrar as equipes que fazem parte da atividade;

    2. Encontrar os participantes da equipe;

    3. Somar os pontos dos participantes da equipe;

     

    O que eu preciso fazer é somar os pontos (ATV_XP) da tabela (USUARIOS_ATIVIDADE) dos usuários (USU_CODIGO) que pertencem a equipe (EQP_CODIGO);

     

    Possuo 2 tabelas:

    TABELA USUARIOS_ATIVIDADE campos principais:

    ATV_CODIGO (código da atividade),

    USU_CODIGO (código do usuário),

    ATV_XP (pontos do usuário)

    aqui faço os controles de interações dos usuários;

     

    TABELA EQUIPES campos principais:

    ATV_CODIGO (código da atividade),

    EQP_CODIGO (código da equipe),  

    EQP_USUARIO (código do usuário),  

    aqui eu controlo as equipes das atividades

     

    Segue abaixo como estou fazendo hoje, valeu abraço.

     

    public function getMembrosEquipes($id) {	
    		
    		$retorno = array();
    		$cont = 0;
    			//select para verificar as equipes da atividade
    			$sql = "SELECT DISTINCT EQP_CODIGO, EQP_NOME
    				FROM EQUIPES
    				WHERE ATV_CODIGO =".$id;
    					
    			$exc = new OracleRecordset($this->conexao->execute($sql));
    			//echo "@@@@@".$sql;
    		
    			while($exc->fetch()) {
    				//select para encontrar os participantes da equipe da atividade
    				$sql2 = "SELECT EQP_USUARIO
    				FROM EQUIPES
    				WHERE EQP_CODIGO =".$exc->getResult('EQP_CODIGO')."
    				AND ATV_CODIGO =".$id;
    				$exc2 = new OracleRecordset($this->conexao->execute($sql2));
    				$exc2->fetch();
    				//echo "#####".$sql2;
    				
    				$usu = $exc2->getResult('EQP_USUARIO');
    				$equipe = $exc->getResult('EQP_CODIGO');
    				
    				//select para somar os pontos do usuário na tabela USUARIOS_ATIVIDADE
    				$sql3 = "SELECT count(DISTINCT UA.USU_CODIGO), sum(UA.ATV_XP) AS ATV_XP, U.USU_CODIGO, U.USU_NOME, U.USU_SOBRENOME, U.USU_IMAGEM, U.USU_XP
    					FROM USUARIOS_ATIVIDADE UA
    					LEFT OUTER JOIN USUARIOS U ON (UA.USU_CODIGO = U.USU_CODIGO) 
    					WHERE UA.ATV_CODIGO = ".$id."
                        GROUP BY UA.USU_CODIGO
    					ORDER BY ATV_XP DESC";
    				$exc3 = new OracleRecordset($this->conexao->execute($sql3));
    				$exc3->fetch();
    				echo "#####".$sql3;
    				
    				$atvbean = new AtividadesBean();		
                    $atvbean->setAtvXp($exc3->getResult('ATV_XP'));
    
    				$eqpbean = new EquipesBean();		
    				$eqpbean->setEqpParticipantes($exc2->getResult('EQP_USUARIO'));
    				$eqpbean->setEqpCodigo($exc->getResult('EQP_CODIGO'));
    				$eqpbean->setEqpNome($exc->getResult('EQP_NOME'));
    				$eqpbean->setEqpAtvXp($atvbean);
    
    				$retorno[$cont] = $eqpbean;
    
    				$cont++;
    			}
    		
    		unset($exc);
    		unset($exc2);
    		unset($exc3);
    		return $retorno;
    		
    	}

     

  3. 9 horas atrás, iHollyZinhO disse:

    Pelo que eu entendi, creio que essa alteração no final do seu código corrija seu problema:

    
    $participantes = "";
    for($h = 0; $h < $lengthEqpLid3; $h++)                    
    	$participantes .= $received[$h]->getEqpParticipantes().",";
      
    $participantes = substr($participantes, 0, strlen($participantes)-1);
    $and .= " AND UA.USU_CODIGO IN (".$participantes.") ";

     

    Cara muito obrigado!!! Fiz alguns pequenos ajustes pra funcionar:

    Tive que passar o resultado pra outra variavel $participantes2 e chamar a instrução SQL fora do laço FOR!

    $lengthEqpLid3 = count($received);
    for($h = 0; $h < $lengthEqpLid3; $h++){
    	$participantes .= $received[$h]->getEqpParticipantes().",";
    	$participantes2 = substr($participantes, 0, strlen($participantes)-1);
    }
    $and .= " AND UA.USU_CODIGO IN (".$participantes2.") ";

     

    • Curtir 2
  4. Galera to tiltando, to com problema de tratamento de dados de ARRAY e SELECT no BD... tipo como posso abrir o Array tirar os dados e encaixar no SELECT COM IN() ? Com o laço FOR atualmente ele executa as 2x (2 registros no BD) e fica assim: AND UA.USU_CODIGO IN (1), AND UA.USU_CODIGO IN (2). Eu precisava que ficasse AND UA.USU_CODIGO IN (1,2)... Testei usar o explode, implode, várias coisas, mas não sei como posso fazer... valeu!!!

     

    /* Chamada função*/
    $regEqpLid2 = $perAtv->getLiderEquipes2($id, $equipe);
    $lengthEqpLid2 = count($regEqpLid2);
    
    /* SQL */
    public function getLiderEquipes2($id, $eqp) {	
    	$retorno = array();
    	$cont = 0;
    
    	$sql = "SELECT DISTINCT EQP_USUARIO
    		FROM EQUIPES
    		WHERE EQP_CODIGO = ".$eqp;
    
    	$exc = new OracleRecordset($this->conexao->execute($sql));
    	echo "@@@@@".$sql2;
    
        while($exc->fetch()) {
            $eqpbean = new EquipesBean();		
            $eqpbean->setEqpParticipantes($exc->getResult('EQP_USUARIO'));
            $retorno[$cont] = $eqpbean;
            $cont++;
        }
      unset($exc);
      return $retorno;
    }
    
    /*Variavel $participantes sendo tratada*/
    $participantes = serialize($regEqpLid2);
    $participantes = urlencode($participantes);
    
    /**** PROBLEMA COMO DEVO TRATAR ESSE ARRAY PRA CONSEGUIR FAZER A CONSULTA NO BD****/
    if($_REQUEST['filtro']){
    $received = $_REQUEST['filtro'];//decodifica o valor passado pelo link
    $received = stripslashes($received);//limpa a string de  antes de "
    $received = unserialize($received);//transforma a string em array
    print_r($received);//imprime o array
    
    $lengthEqpLid3 = count($received);
    for($h = 0; $h < $lengthEqpLid3; $h++){
    	//Mostra os participantes
        $participantes = $received[$h]->getEqpParticipantes();
      	echo ">>>".$participantes;
      	$and .= " AND UA.USU_CODIGO IN (".$participantes.") ";
      }
    }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!