rcdesign 1 Denunciar post Postado Março 3, 2009 O caso é o seguinte.. Tenho duas tabelas: admin e cadastro Preciso fazer com que, no momento do cadastro, seja incluída a informação do funcionário (listado no admin) que irá atendê-lo. Este funcionário deverá ser diferente a cada cadastro e em ordem sequencial. Fiz então o seguinte: $busca = mysql_query("SELECT contato_de FROM cadastro ORDER BY cod DESC LIMIT 0,2"); while ($result = mysql_fetch_array($busca)) { $contato_de = $result['contato_de']; $ult_func[] = $contato_de; // pega os doís últimos funcionários no campo contato_de e coloca numa array } echo '<br />Últimos 2 funcionários: '; print_r($ult_func); // apenas para verificar se está trazendo os dois últimos corretamente e está. $bsc = mysql_query("SELECT * FROM admin WHERE nivel_acesso = 1"); while ($n = mysql_fetch_array($bsc)) { $nome = $n['nome']; $nomes_func[] = $nome; // pega os funcionários do admin que tem nível de acesso = 1 } echo '<br />Funcionários: '; print_r($nomes_func); // apenas para verificar se está trazendo todos os funcionários corretamente e está. $func_atual = array_diff($ult_func, $nomes_func); // faz a diferença entre as arrays echo '<br />Funcionário Atual: '; print_r($func_atual); // informa o funcionário da vez o que está retornando então é o seguinte: Últimos 2 funcionários: Array ( [0] => Paulo [1] => kelly ) Funcionários: Array ( [0] => Kelly [1] => Paulo [2] => Daniel ) Funcionário Atual: Array ( [1] => kelly ) ou seja... o funcionário atual deveria ser Daniel, e não kelly.. Obs.: Estou verificando os dois últimos funcionarios cadastros pois, como se pode ver eu só tenho 3 funcionários para atender os clientes.. então, eu preciso ver apenas os últimos dois e incluir o terceiro. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Março 3, 2009 array_diff - Analisa as diferenças entre arrays array_fill — Preenche um array com valores Compartilhar este post Link para o post Compartilhar em outros sites
rcdesign 1 Denunciar post Postado Março 4, 2009 Renato obrigado pelo retorno porém, como se pode observar no meu post, já estou utilizando a função array_diff e não está retornando o valor correto. Não entendi o porquê do array_fill se as arrays estão sendo populadas com os resultados das querys Compartilhar este post Link para o post Compartilhar em outros sites
rcdesign 1 Denunciar post Postado Março 4, 2009 CONCLUSÃO Não tem nada de errado no código.. está tudo certo.. o problema na verdade eram as informações que estavam cadastradas no banco de dados para o funcionário Kelly. No admin estava "Kelly" e no cadastro "kelly" (K minúsculo). ajustado o cadastramento correto através dos nomes dos funcionários vindos do admin resolve-se o 'problema' além do ajuste da linha $func_atual = array_diff($ult_func, $nomes_func); // faz a diferença entre as arrays para: $func_atual = array_diff($nomes_func, $ult_func); // faz a diferença entre as arraysA diferença sempre da array com maior quantidade de registros pela array com menor quantidade de registros. Não sei afirmar se isto é obrigatório, porque acabei não testando o contrário, mas pelo menos é o mais lógico. Compartilhar este post Link para o post Compartilhar em outros sites