donny_ 0 Denunciar post Postado Agosto 20, 2008 Bom galera, como estao? entao, seguinte, to terminando um sisteminha aqui de cadastro de anuncios, so que o seguinte, fui fazer uma validacao aqui, que por exemplo, se o usuario tentar se cadastrar com um CPF e ele ja estiver no DB vai acusar o erro a ele, dzd que o CPF ja esta cadastrado. Desenvolvi o codigo, tudo funcionando, so tem um porem, se o usuario por exemplo, digitar um CPF que ja tem no DB por exemplo 5 vezes, vai aparecer a mensagem: * CPF Já Cadastrado as 5 vezes, se tiver 10, vai aparecer 10, etc..... segue abaixo o codigo: $plngratis = mysql_query("SELECT cpf, empresa FROM plngratis"); while($resul = mysql_fetch_array($plngratis)) { if($resul['cpf'] == $cpf) { $erro .= "* CPF Já Cadastrado. <br />"; } if($resul['empresa'] == $empresa) { $erro .= "* Empresa Já Cadastrada. <br />"; } } OBS: a variavel $cpf esta pegando o campo "<input type="text" name="cpf"....>" talvez pintam para vcs a pergunta -> se tem validacao como vai ter 10 cpf iguais, é meio dificil, mais eu fzd os testes aqui antes de mandar pro ar, dai ja tinha uns registros cadastrados antes de eu fazer a validacao, dai notei esse problema.... è isso ai galera, conto com ajuda de vcs, brigadao vlw...... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 20, 2008 Você está gastando tempo de execução e memória à toa. Use $cpf e $empresa na query. Use COUNT(), do MySQL Select COUNT(*) as total From tabela Where cpf = $cpf OR empresa = $empresa; se Total for maior que 1, mostre o erro []s Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
donny_ 0 Denunciar post Postado Agosto 20, 2008 Beraldo, vlw pela dica, tentei aqui desse modo: $valcpf = mysql_query("SELECT COUNT(*) FROM plngratis WHERE cpf = '$cpf'"); while($resul = mysql_fetch_array($valcpf)) { if($resul > 1) { $erro .= "* CPF Já cadastrado <br />"; }} so q nao funfo, todo cpf q coloco diz que ja esta cadastrado. obrigado e vlw.... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 20, 2008 tente assim: $valcpf = mysql_query("SELECT COUNT(*) as total FROM plngratis WHERE cpf = '$cpf'"); $total = mysql_result($valcpf, 0, 'total'); if ($total > 0) { // já foi cadastrado } Compartilhar este post Link para o post Compartilhar em outros sites
donny_ 0 Denunciar post Postado Agosto 20, 2008 Beraldo, vlw, mexendo ake consegui, fiz desse modo: $plngratis = "SELECT COUNT(*) as total FROM plngratis WHERE cpf = '$cpf'"; $res = mysql_query($plngratis); $array = mysql_fetch_array($res); if($array['total'] >= 1) { $erro .= "* CPF Já cadastrado <br />"; } é pq eu nao tinha entendido o "as total", se alguem puder me dizer o q significa esse "as total", eu sei q é tipo um apelido que se da, mais nao entendi muito bem.... vlwwwwww gente..... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 20, 2008 é um apelido (alias), sim. Execute com e sem alias na linha de comando do MySQL. Sem alias, o nome do campo será count(*). Com alias, total.; É mais fácil com total, por isso se usam alias em casos assim Compartilhar este post Link para o post Compartilhar em outros sites
donny_ 0 Denunciar post Postado Agosto 20, 2008 tendi agora, aqui funciono tudo beleza, muito obrigado Beraldo, vlw mesmo.... Compartilhar este post Link para o post Compartilhar em outros sites