nano_b 0 Denunciar post Postado Junho 8, 2011 Pessoal, preciso pegar valores de uma coluna da tabela e comparar entre eles, pra saber se existe algum repetido. Já tentei fazer isso com array_unique(), mas não consegui nenhum resultado. Vou exemplificar pra se tornar mais facil. Tenho uma coluna chamada VALOR. Nela tem os seguintes valores: [1 2 3 4 4]. Bom, o 4 está repetido. To tentando fazer um script que reconheça que há um valor repetido. Alguém tem alguma ideia de como fazer? Muito obrigado!!! Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Junho 8, 2011 o banco já faz isso agrupando por valor e colocando em qtde a quantidade de vezes que foi repetido select count(*) as qtde, `valor` from `tabela` group by `valor` entendi mais ou menos o que você quer, se não for isso explica melhor Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 8, 2011 você pode fazer uma função que te retorna verdadeiro se o array possuir valores únicos e falso se possuir valores repetidos <?php function is_unique( array $values ) { $result = true; array_walk( array_count_values( $values ), function( $value ) use ( &$result ) { if( $value > 1 ) $result = false; } ); return $result; } $values = array( 1, 2, 3, 4, 5, 6, 3, 1 ); var_dump( is_unique( $values ) ); // boolean false $values = array( 1, 2, 3, 4, 5, 6, 7, 8 ); var_dump( is_unique( $values ) ); // boolean true ?> Compartilhar este post Link para o post Compartilhar em outros sites
nano_b 0 Denunciar post Postado Junho 8, 2011 Victor... é mais ou menos isso, mas não consegui aplicar teu código... Carlos Coelho... é isso que eu preciso, mas também não consegui aplicar teu código... abaixo segue o meu script: $consulta1 = mysql_query ("SELECT * FROM cat_codigo WHERE id = '".$id."'"); //seleciona todos os dados da tabela do código $dados = mysql_fetch_assoc ($consulta1); $id_peca = $dados ['id_peca']; $consulta = mysql_query ("SELECT id_conjunto FROM cat_peca"); //seleciona todos os dados da tabela do código*/ A partir daí, preciso consultar se o "id_conjunto" aparece mais de uma vez nessa tabela... Obrigado!! Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Junho 8, 2011 Não consegui entender o que você está querendo fazer Compartilhar este post Link para o post Compartilhar em outros sites
nano_b 0 Denunciar post Postado Junho 8, 2011 Vou tentar explicar melhor... Tenho uma tabela... digamos que eu tenha 3 campos nessa tabela: id | campoA | campoB Eu tenho dados nessa tabela: id | campoA | campoB 1 | dado1 | x 2 | dado2 | y 3 | dado2 | z ... Como se pode ver, o campoA possui dois valores iguais, que são dado2... Bom, eu preciso comparar todos os valores desse campo e saber se há alguma repetição: dado1 > dado2 (comparando o dado1 com o dado2) dado1 > dado2 dado2 > dado1 ... (e assim por diante) Se encontrar dados iguais (nesse caso vai encontrar dado2 = dado2), então deve me dizer que há dados iguais... Simples... Valleuuu! Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 8, 2011 Coloque todos os dados que você quer verificar se estão repetidos em um array e depois utilize a função que te passei. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Junho 8, 2011 com base nessa tabela acima $query = "SELECT IF( count(*) > 1 , 'sim', 'não')AS verifica, GROUP_CONCAT( CONVERT( `id`, char ) SEPARATOR ';') AS id FROM `tabela` GROUP BY `campoA`"; $sql = mysql_query($query) or die(mysql_error()); echo "<table><tr><td>Duplicado</td><td>ID(s)</td></tr>"; while ($linha = mysql_fetch_assoc($sql)){ echo "<tr><td>{$linha['verifica']}</td>"; echo "<td>{$linha['id']}</td></tr>"; } echo "</table>"; qualquer dúvida na query leia no manual do mysql IF() CONVERT() GROUP_CONCAT() Compartilhar este post Link para o post Compartilhar em outros sites
nano_b 0 Denunciar post Postado Junho 13, 2011 Cara, muito obrigado! Aos dois!!! :D Vou tentar usar essa solução, e posto aqui se conseguir!! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites