ReactionN Posted June 6, 2012 at 03:27 PM Report Share #460934 Posted June 6, 2012 at 03:27 PM (edited) Boas pessoal, Tou aqui com um pequeno problema e talvez vocês me possam ajudar, O problema é o seguinte, quando eu peço para ele verificar se o utilizador que o cliente escolheu já existe, mesmo que nao exista na BD ele retoma a mensagem de que o utilizador já existe. em baixo está o código utilizado para verificar se o utilizador existe ou não: $teste = mysqli_query($liga,"select COUNT(utilizador) FROM utilizadores WHERE utilizador='$Utilizador'"); //seleciona todos os nomes que existem com o nome digitado pelo utilizador $verificar = mysqli_num_rows($teste); //conta quantos registos foram encontrados na query anterior var_dump($verificar); if ($verificar> 0) { echo "O Utillizador já se encontra registado no sistema. Por favor, utilize outro nome!"; } else { Desde já agradeço a quem me conseguir ajudar 🙂 . Edited June 6, 2012 at 05:43 PM by brunoais geshi! Link to comment Share on other sites More sharing options...
pikax Posted June 6, 2012 at 03:39 PM Report Share #460940 Posted June 6, 2012 at 03:39 PM (edited) porque que na query tens um count, porque que depois ves o numero de rows afected?? e ja' agora nao executaste a query! EDIT: Exemplo de num_rows: <?php $link = mysql_connect("localhost", "mysql_user", "mysql_password"); mysql_select_db("database", $link); $result = mysql_query("SELECT * FROM table1", $link); $num_rows = mysql_num_rows($result); echo "$num_rows Rows\n"; ?> http://php.net/manual/en/function.mysql-num-rows.php Edited June 6, 2012 at 03:40 PM by pikax Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
MASNathan Posted June 6, 2012 at 03:41 PM Report Share #460942 Posted June 6, 2012 at 03:41 PM com o select que tu tens ele vai retornar sempre mas sempre 1 valor... tira o COUNT do codigo sql que fica a funcionar Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 6, 2012 at 03:43 PM Report Share #460943 Posted June 6, 2012 at 03:43 PM que tipo de dados achas que uma query dessas retorna ??? 1º - isso retorna sempre um recordset com um registo contendo um valor numérico, o resultado do count 2º - afinal a variável que estás a usar é verificar ou verifica_nome? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
ReactionN Posted June 6, 2012 at 04:09 PM Author Report Share #460961 Posted June 6, 2012 at 04:09 PM Boas, pikas, tens razão, a query é executada eu é que me esqueçi de colocar o código que estava antes 😛 . MASNathan, fiz como tu sugeriste e retomou o seguinte erro "Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given...". HappyHippyHippo, em relação ao 1º ponto, eu sei que retoma sempre um valor numérico. em relação ao 2º ponto, a variável que estou a usar é "verificar", foi uma gralha a copiar o código para aqui. Link to comment Share on other sites More sharing options...
MASNathan Posted June 6, 2012 at 04:15 PM Report Share #460963 Posted June 6, 2012 at 04:15 PM $teste = mysqli_query("select utilizador FROM utilizadores WHERE utilizador='$Utilizador'",$liga); puseste assim? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 6, 2012 at 04:16 PM Report Share #460964 Posted June 6, 2012 at 04:16 PM MASNathan, fiz como tu sugeriste e retomou o seguinte erro "Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given...". isso é porque tens um erro no SQL .. muito provavelmente porque não removeste um dos '(' ou ')' do count ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
ReactionN Posted June 6, 2012 at 07:04 PM Author Report Share #461029 Posted June 6, 2012 at 07:04 PM MASNathan, tal e qual como tu tens, e mesmo assim dá erro :s Link to comment Share on other sites More sharing options...
pikax Posted June 6, 2012 at 07:33 PM Report Share #461033 Posted June 6, 2012 at 07:33 PM verifica se a ligacao foi bem sucedida Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
ReactionN Posted June 6, 2012 at 07:46 PM Author Report Share #461036 Posted June 6, 2012 at 07:46 PM verifica se a ligacao foi bem sucedida A ligação é bem sucedida porque logo aseguir a verificar se existe ou não, insere os dados na BD, e a realidade é que dá este erro mas insere o registo. Link to comment Share on other sites More sharing options...
pikax Posted June 6, 2012 at 08:15 PM Report Share #461042 Posted June 6, 2012 at 08:15 PM mete para verificar se ele retorna alguma coisa $teste = mysqli_query($liga,"select COUNT(utilizador) FROM utilizadores WHERE utilizador='$Utilizador'"); //seleciona todos os nomes que existem com o nome digitado pelo utilizador if($teste) { $verificar = mysqli_num_rows($teste); //conta quantos registos foram encontrados na query anterior print_r($verificar); } else echo "errorr!!!<br>"; Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
ReactionN Posted June 6, 2012 at 08:30 PM Author Report Share #461050 Posted June 6, 2012 at 08:30 PM mete para verificar se ele retorna alguma coisa $teste = mysqli_query($liga,"select COUNT(utilizador) FROM utilizadores WHERE utilizador='$Utilizador'"); //seleciona todos os nomes que existem com o nome digitado pelo utilizador if($teste) { $verificar = mysqli_num_rows($teste); //conta quantos registos foram encontrados na query anterior print_r($verificar); } else echo "errorr!!!<br>"; Eu usei o var_dump antes de fazer o tal if e aquilo retoma um NULL Link to comment Share on other sites More sharing options...
pikax Posted June 6, 2012 at 08:33 PM Report Share #461053 Posted June 6, 2012 at 08:33 PM a tua query tem algum erro, nao te importas de por aqui a tabela? Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
ReactionN Posted June 6, 2012 at 08:42 PM Author Report Share #461060 Posted June 6, 2012 at 08:42 PM Como disseste Pikax, a query tinha um erro daqueles que é tão evidente que quando estamos há horas a olhar para isto passa-nos ao lado. O erro estava quando eu apaguei o count(utilizador) e escrevi utilzador. Obrigado pela vossa preciosa ajuda. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now