Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  

Recommended Posts

Postado (editado)

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.") ";
  }
}
Editado por Gláuber Guilherme Signori

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.") ";

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×