Ir para conteúdo

Arquivado

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

LucasPThiago

Mostra contagem se realmente houver duplicidade

Recommended Posts

Boa noite pessoal, então, eu desenvolvi um código cujo a qual ele faz uma consulta no meu banco dos cpf's e oab's duplicados, e mostra de qual caso ele é, o nome do autor e etc.

Meu problema é o seguinte, no while aonde ele monta a tabela do contador junto com o resultado da duplicidade, eu queria que onde não houver duplicidade de somente o cpf ou a oab aparecesse 1.

Meu código é esse aqui:

header('Content-Type: text/html; charset=utf-8');
$host = "localhost";
$user = "root";
$pass = "123";
$banco = "consulta";
$conexao = mysqli_connect($host, $user, $pass) or die (mysqli_error());
mysqli_select_db($conexao, $banco) or die (mysqli_error($conexao));
$querry = 'SELECT cpf_cnpj, COUNT(cpf_cnpj) AS cpf FROM `processos` GROUP BY `cpf_cnpj` HAVING cpf > 1';
$sql = mysqli_query($conexao, $querry)or die(mysqli_error($conexao));
$dados = mysqli_fetch_array($sql);
$querry0 = 'SELECT oab, COUNT(oab) AS contoab FROM `processos` GROUP BY `oab` HAVING contoab > 1';
$sql0 = mysqli_query($conexao, $querry0)or die(mysqli_error($conexao));
$dados0 = mysqli_fetch_array($sql0);
extract($dados);
extract($dados0);
echo 'CPF:'.' '.'OAB:'.'<br>';
$querry1 = '(SELECT num_processo, cpf_cnpj, autor, oab, ajuizamento FROM processos WHERE cpf_cnpj IN (SELECT B.cpf_cnpj FROM `processos` B WHERE cpf_cnpj <> " " GROUP BY B.cpf_cnpj HAVING COUNT(*) > 1) OR oab IN (SELECT B.oab FROM `processos` B WHERE oab <> " " GROUP BY B.oab HAVING COUNT(*) > 1) ORDER BY cpf_cnpj)';
$sql1 = mysqli_query($conexao, $querry1)or die(mysqli_error($conexao));
while($dados1 = mysqli_fetch_array($sql1)){
echo '<b style="padding-left:10px;">'.$cpf.'</b> <b style="padding-left:27px;">'.$contoab.'</b><label style="padding-left:60px;">'.$dados1["num_processo"].' '.'<b>'.$dados1["cpf_cnpj"].'</b>'.' '.$dados1["autor"].' '.'<b>'.$dados1["oab"].'</b>'.' '.$dados1["ajuizamento"].'</label>'.'<br>';
}
Ele me gera esse resultado por exemplo
CPF: OAB:
2(AQUI ERA PRA SER 1, JÁ QUE AQUELE CPF, NÃO ESTÁ REPITIDO)4(A OAB AQUI ESTÁ CERTA, POIS ELA FOI REPITIDA)PROCESSO CPFNAOREPITIDO NOMEDAPESSOA OABREPITIDA 16/03/2016
2(O CPF AQUI ESTÁ CERTO) 4(A OAB AQUI ERA PRA SER 1 JÁ QUE ELA NÃO FOI REPITIDA)PROCESSO CPFREPITIDO1 NOMEDAPESSOA OABNAOREPITIDA 03/03/2016
2 4(AQUI AMBOS ESTÃO CERTOS)PROCESSO CPFREPITIDO2 NOMEDAPESSOA OABREPITIDA 16/02/2016
2(AQUI ERA PRA SER 1) 4PROCESSO CPFNAOREPITIDO NOMEDAPESSOA OABREPITIDA 21/02/2016
2(AQUI ERA PRA SER 1) 4PROCESSO CPFNAOREPITIDO NOMEDAPESSOA FIALHO OABREPITIDA 15/02/2016
Alguém tem ideia de como fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, vamos usar o mesmo acima, como pode ver abaixo, o contador ele ta falando que o CPF: se repete duas vezes e a OAB se repete duas vezes. Mas, ele mostra isso em todas as linhas. o que seria essas linhas todas ? Tenho um código que ele gera pra mim onde existe cpf repitido e onde ele fica. e a mesma coisa pra oab. então, ele pode se repitir, por exemplo, no 450º processo e o outro no 890° processo. Esse mostra exatamente pra mim. O problema, é que nem sempre a oab ela pode vir repitida pra aquele processo.

Vamos supor que quando eu puxei a pesquisa ele mostrou 3 resultado dizendo que eu duplicidades. que eu tenho o;

processo: 12345

cpf:1234567891011

oab:4321

processo: 54321

cpf:1234567891011

oab:1234

processo: 67890

cpf:1110987654321

oab:4321

Ou seja, tenho dois cpf's repitidos e duas oab's repitidos, que são esses: 1234567891011 e 4321. Certo ?

ele virá impresso assim para mim:

12345(ESTE é o processo) 1234567891011(ESTE é o cpf) 4321(ESTE é oab)

54321 1234567891011 1234

67890 1110987654321 4321

E do lado dessa consulta eu tenho um contador, que eu quero ele respectivamente mostre assim para mim

CPF: OAB:

2 2 12345(ESTE é o processo) 1234567891011(ESTE é o cpf) 4321(ESTE é oab)

2 1 54321 1234567891011 1234

1 2 67890 1110987654321 4321

Porque assim ? Porque na primeira linha, o cpf ele se repete em algum outro processo qualquer, por isso 2. E a oab também se repete em outro processo qualquer, também por isso 2. Mas não quero que a contagem seja só pra quando houver ou cpf repitido, ou oab, repitido. Justame por isso que na segunda linha ta falando que a oab é 1, porque aquela oab não se repete em lugar nenhum

O meu problema, é que quando eu gero a minha consulta com o contador, o meu while ele está repetindo consecutivamente o resultado que dessas consultas: SELECT cpf_cnpj, COUNT(cpf_cnpj) AS cpf FROM `processos` GROUP BY `cpf_cnpj` HAVING cpf > 1 <-- ESTÁ É DO CPF

SELECT oab, COUNT(oab) AS contoab FROM `processos` GROUP BY `oab` HAVING contoab > 1 <-- ESTÁ É DA OAB

que são só 2 e 4. Pois, como exemplo, eu botei somente um cpf repitindo 2 vezes, e uma oab repitindo 4 vezes lá no banco. Eu quero que ele faça a contagem daquela consulta que eu fiz e não no banco, como dei o exemplo acima:

12345(ESTE é o processo) 1234567891011(ESTE é o cpf) 4321(ESTE é oab)

54321 1234567891011 1234

67890 1110987654321 4321

E o contador, contando esse resultado. Pra ficar dessa maneira:

CPF: OAB:

2 2 12345(ESTE é o processo) 1234567891011(ESTE é o cpf) 4321(ESTE é oab)

2 1 54321 1234567891011 1234

1 2 67890 1110987654321 4321

processo: 12345

cpf:1234567891011

oab:4321

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.