alissonxx 0 Denunciar post Postado Junho 10, 2009 No código abaixo é feita a comparação de 2 querys, através do campo UserName $sql="SELECT UserName FROM radreplies where Attribute='Framed-Pool' AND Empresa='$empresa_escolhida' "; $qry=mysql_query($sql); while($row=mysql_fetch_array($qry)) { $UsuarioBloqueado=$row['UserName']; $Att_Bloqueado=$row['Attribute']; $sql2="SELECT * from radchecks WHERE UserName!='$UsuarioBloqueado' GROUP BY UserName"; $qry2=mysql_query($sql2); while($row2=mysql_fetch_array($qry2)) { $UsuarioAtivo=$row2['UserName']; if($UsuarioAtivo==$UsuarioBloqueado) { } else { echo"<br>$UsuarioAtivo ativo"; } } } a saida é aaaa ativo aaaa ativo aaaa ativo aaaa ativo aaaa ativo aaaa ativo aaaa ativo todos os registros ele mostra assim Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 10, 2009 Ta, e qual sua duvida, problema, necessiade,...? Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 10, 2009 Ta, e qual sua duvida, problema, necessiade,...? minha necessidade é pegar os usuarios que não estão bloqueados no sistema. a primeira query eu seleciono todos os bloqueados $sql="SELECT UserName FROM radreplies where Attribute='Framed-Pool' AND Empresa='$empresa_escolhida' "; na segunda query eu tenho que comparar os bloqueados com todos os usuarios e retirar os bloqueados, mostrando somente os ativos $sql2="SELECT * from radchecks WHERE UserName!='$UsuarioBloqueado' GROUP BY UserName"; ambas tabelas tem o campo UserName que é usado pra diferenciar os ativos dos bloqueados, mas a saída está sendo essa aaaa ativo aaaa ativo aaaa ativo aaaa ativo aaaa ativo aaaa ativo aaaa ativo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 10, 2009 Tá... Não é mais fácil já na primeira query selecionar somente os ativos??? Qual a condição pra saber se ele está ativo ou bloqueado? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 10, 2009 a condição para verificar se é ativo é se o UserName estiver cadastrado na tabela radreplies e possuir um registro de Attributo='Framed-Pool' que é feito nessa primeiora query $sql="SELECT UserName FROM radreplies where Attribute='Framed-Pool' AND Empresa='$empresa_escolhida' "; nisso eu pego os nomes dos usuarios bloqueados. pro cara estar ativo ele tem um registro na radchecks(dados do cliente) e pode ter registro na radreplies(estados), ele pode ter atributos de ip e rota, menos o de Framed-Pool, senão ele está bloqueado. $sql2="SELECT * from radchecks WHERE UserName!='$UsuarioBloqueado' GROUP BY UserName"; Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 10, 2009 Leia de novo esta parte do teu POST... Aqui você se contradiz... a condição para verificar se é ativo // VERIFICAR SE É ATIVO é se o UserName estiver cadastrado na tabela radreplies e possuir um registro de Attributo='Framed-Pool' que é feito nessa primeiora query QUOTE $sql="SELECT UserName FROM radreplies where Attribute='Framed-Pool' AND Empresa='$empresa_escolhida' "; nisso eu pego os nomes dos usuarios bloqueados.// BLOQUEADOS OU ATIVOS??? Pela tua explicação lá de cima, o SELECT tá retornando os ativos... e não os bloqueados... Tenta explicar melhor a lógica pra saber se é ativo pra eu poder te ajudar... Mas com certeza dá pra resolver usando só uma query... Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 10, 2009 ok radchecks > dados do usuario radreplies > estados do usuario as 2 tabelas possui o campo UserName para o cara estar ativo ele pode ter registros em radchecks(todos dados) e radreplies(ip e rede) para ele estar bloqueado ele pode ter registros em radchecks(todo os dados) e no radreplies(framed-pool) se o usuario tem framed-pool ele está bloque senao ele está ativo Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 10, 2009 Para que isso tudo mano. Basta criar uma coluna "bloqueado", e indicar 2 valores que indicaram se ele esta bloqueado ou não. Exemplo: 1 => Bloqueado 0 => Não bloqueado Com isso tu faz só uma query simples. Simplifique as coisas, em vez de complica-las Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 10, 2009 Pois é... Concordo com o André D. Molin. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 10, 2009 Tava pensando... Nem precisa criar o campo bloqueado. Se estiver framed-pool o cara tá bloqueado, se estiver outra coisa tá ativo... É isto? se o usuario tem framed-pool ele está bloquedo Se for, faz a query assim $sql="SELECT UserName FROM radreplies where Attribute != 'Framed-Pool' AND Empresa = '$empresa_escolhida' "; Vai retornar os que estão ativos. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 11, 2009 Tava pensando... Nem precisa criar o campo bloqueado. Se estiver framed-pool o cara tá bloqueado, se estiver outra coisa tá ativo... É isto? se o usuario tem framed-pool ele está bloquedo Se for, faz a query assim $sql="SELECT UserName FROM radreplies where Attribute != 'Framed-Pool' AND Empresa = '$empresa_escolhida' "; Vai retornar os que estão ativos. Carlos Eduardo não dá, pois na radreplies são apenas estados do usuário, nem todos os usuários tem registro lá. todos os usuários ficam na radchecks. eu tenho q seleciona os q tem framed-pool da radreplies e comparar com a radchecks e tirar os bloqueados da radreplies Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 13, 2009 alguma sugestao? http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Porque você não faz como o André D. Molin colocou? Para que isso tudo mano. Basta criar uma coluna "bloqueado", e indicar 2 valores que indicaram se ele esta bloqueado ou não. Exemplo: 1 => Bloqueado 0 => Não bloqueado Com isso tu faz só uma query simples. Simplifique as coisas, em vez de complica-las Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Se não der pra fazer como o André sugeriu, você pode fazer assim (teoricamente, não testei e nem sei se vai funcionar). $sql2="SELECT * from radchecks WHERE UserName NOT IN (SELECT UserName FROM radreplies where Attribute = 'Framed-Pool') AND Empresa = '$empresa_escolhida' "; Volto a dizer, não sei se vai funcionar, nem sei qual vai ser o desempenho, mas é uma idéia. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 13, 2009 É q que esses atributos são para o servidor, e ele detecta os bloqueados através do attributo='pool_acessonegado' que está na tabela radaccts(estados do usuario) e o cadastro do cara ta em radchecks(dados do usuario) eu tenho que selecionar os usuarios que nao possuem 'pool_acessonegado' da tabela radaccts e retirar da radchecks Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Então lógica que você colocou no início está errada. Coloca a lógica completa pra poder te ajudar... E outra coisa... Porque não faz assim????? Muito mais simples... Porque você não faz como o André D. Molin colocou? Para que isso tudo mano. Basta criar uma coluna "bloqueado", e indicar 2 valores que indicaram se ele esta bloqueado ou não. Exemplo: 1 => Bloqueado 0 => Não bloqueado Com isso tu faz só uma query simples. Simplifique as coisas, em vez de complica-las Carlos Eduardo Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 13, 2009 a logica é a seguinte. tabelas radchecks(dados do usuario) radreplies(estados do usuario, podendo ser ip,rota ou framed-pool) o campo de ligação das 2 tabelas é o UserName. se ele possuir os valores abaixo nas 2 tabelas, entao o usuario alisson está bloqueado radchecks.UserName=Alisson radreplies.UserName=Alisson e radreplies.Attribute=Framed-Pool se for somente os codigos abaixo, entao ele está liberado, radchecks.UserName=Alisson ou radchecks.UserName=Alisson radreplies.UserName=Alisson e radreplies.Attribute=Rota Ou radreplies.Attribute=ip entende? eu tbm tentei desta forma. $sql2="SELECT * from radchecks WHERE UserName NOT IN (SELECT UserName FROM radreplies where Attribute = 'Framed-Pool') AND Empresa = '$empresa_escolhida' "; mas nesse select interno ele só pega o primero username, se eu colocar Limit da erro no mysql dizendo que há mais de um valor $sql2="SELECT * from radchecks WHERE UserName NOT IN (SELECT UserName FROM radreplies where Attribute = 'Framed-Pool' limit 0,100) AND Empresa = '$empresa_escolhida' "; Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Tenta assim $sql = "SELECT * from radchecks rc JOIN radreplies rp USING (UserName) WHERE rp.Attribute != 'Framed-Pool' AND rc.Empresa = '$empresa_escolhida'";// Só tem que ver onde está a empresa escolhida... rc ou rp.. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
alissonxx 0 Denunciar post Postado Junho 15, 2009 Então, testei a sua query e ele retornou somente alguns registros de uma tabela de centenas eu tenho que retornar os nomes ativos de radchecks, retirando os bloqueados de radreplies e está complicado fazer isso Compartilhar este post Link para o post Compartilhar em outros sites
Leandro de Jesus 5 Denunciar post Postado Junho 15, 2009 Cara é fácil de resolver só é dificil de de entender rs.. Diz uma coisa... quando você diz retirando os bloqueados do radreplies você diz excluir, mudar o status, ou não aparecer na lista?? Compartilhar este post Link para o post Compartilhar em outros sites