ReactionN Posted June 6, 2012 at 03:27 PM Report #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!
pikax Posted June 6, 2012 at 03:39 PM Report #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."
MASNathan Posted June 6, 2012 at 03:41 PM Report #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
HappyHippyHippo Posted June 6, 2012 at 03:43 PM Report #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
ReactionN Posted June 6, 2012 at 04:09 PM Author Report #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.
MASNathan Posted June 6, 2012 at 04:15 PM Report #460963 Posted June 6, 2012 at 04:15 PM $teste = mysqli_query("select utilizador FROM utilizadores WHERE utilizador='$Utilizador'",$liga); puseste assim?
HappyHippyHippo Posted June 6, 2012 at 04:16 PM Report #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
ReactionN Posted June 6, 2012 at 07:04 PM Author Report #461029 Posted June 6, 2012 at 07:04 PM MASNathan, tal e qual como tu tens, e mesmo assim dá erro :s
pikax Posted June 6, 2012 at 07:33 PM Report #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."
ReactionN Posted June 6, 2012 at 07:46 PM Author Report #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.
pikax Posted June 6, 2012 at 08:15 PM Report #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."
ReactionN Posted June 6, 2012 at 08:30 PM Author Report #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
pikax Posted June 6, 2012 at 08:33 PM Report #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."
ReactionN Posted June 6, 2012 at 08:42 PM Author Report #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.
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