Jump to content

[Resolvido] Warning: mysql_num_rows()


Hipnoted
 Share

Recommended Posts

Estou a tentar seguir alguns scripts de logins, mesmo aqui do fórum mas dá-me sempre o mesmo erro na mesma função. Tenho este código:

$login = $_POST['login'];
$senha = md5($_POST['senha']);

$ligacao = mysql_connect('localhost','root','vertrigo') or die ("Impossível ligar à base de dados");

mysql_select_db('db_users', $ligacao) or die ("Cannot select database");

$sql = "SELECT nome, pass FROM users WHERE nome = '$login' AND pass = '$senha'";

$resposta = mysql_query($sql, $ligacao);

$num = mysql_num_rows($resposta);

if($num != 0){
echo "Login feito com sucesso! <br />";
}
else{
echo "Nome ou password podem estar errados! <br />";
}

mysql_close($ligacao);

E dá o erro:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programas\VertrigoServ\www\ttt\login.php on line 14

Sinceramente não sei mais que fazer, já vi muitos exemplo da mesma forma que estou a fazer.

PS: Não liguem à forma pouco segura como estou a fazer as coisas, eu sei que devo evitar o SQL injection entre outros mas isso é depois...  😁

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

faz um echo ao $sql e ao $resposta... um dos dois tem dados errados...

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Link to comment
Share on other sites

exactamente... o erro está lá, não é é mostrado...

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Link to comment
Share on other sites

Pois, o erro estava no nome da tabela. Sem querer acabei por dar o mesmo nome da tabela da base de dados, ou seja em vez de ser users é db_users.

Aqui fica:

<?php

$login = $_POST['login'];
$senha = $_POST['senha'];

$ligacao = mysql_connect("localhost","root","vertrigo") or die ("Impossível ligar à base de dados");

mysql_select_db("db_users", $ligacao) or die ("Cannot select database");

$sql = "SELECT nome, pass FROM db_users WHERE nome = '$login' AND pass = '$senha'";

$resposta = mysql_query($sql, $ligacao);

$num = mysql_num_rows($resposta);

if($num != 0){
echo "Login feito com sucesso! <br />";
}
else{
echo "Nome ou password podem estar errados! <br />";
}

mysql_close($ligacao);

?>

Obrigado.  😛

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

Estou a tentar implementar isto no meu site mas dá o mesmo erro:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/paginas/Hipnoted/public_html/upload/login.php on line 14

O código é o seguinte:

$login = $_POST['login'];
$senha = $_POST['senha'];

$ligacao = mysql_connect("localhost","Hipnoted","xpto") or die ("Impossível ligar à base de dados");

mysql_select_db("Hipnoted_db_users", $ligacao) or die ("Cannot select database");

$sql = "SELECT nome, pass FROM db_users WHERE nome = '$login' AND pass = '$senha';";

$resposta = mysql_query($sql, $ligacao);

$num = mysql_num_rows($resposta);

if($num != 0){
echo "<br /><br /><center>Login feito com sucesso! </center><br />";
//sleep(3);
require_once("upload.html");
mysql_close($ligacao);
}
else{
echo "<br /><br /><center>Nome ou password podem estar errados! </center><br />";
echo "<center>Para voltar a fazer login clique <a href = index.html> aqui </a></center>";
mysql_close($ligacao);
}

Já fiz um echo a $sql e tá bem, o echo a $resposta não devolve nada será disso?

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

e tens dados na bd?

há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Link to comment
Share on other sites

e tens dados na bd?

Claro, ainda agora fui lá verificar

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

faz um echo mysql_error(); para mostrar o erro em causa. Os erros costumam ser bastante explicativos, por aí já te deves desenrascar.

"Pensa positivo: tudo pode piorar"

Link to comment
Share on other sites

acabei de testar isso , apenas modifiquei o $login e $senha para um valor definido no proprio php, e as informações relativas à bd, mas mantive o nome dos campos e tabela iguais

e funcionou tudo bem  sem qualquer erro  😛

Link to comment
Share on other sites

faz um echo mysql_error(); para mostrar o erro em causa. Os erros costumam ser bastante explicativos, por aí já te deves desenrascar.

Pois, realmente deu muito jeito. lol

acabei de testar isso , apenas modifiquei o $login e $senha para um valor definido no proprio php, e as informações relativas à bd, mas mantive o nome dos campos e tabela iguais

e funcionou tudo bem  sem qualquer erro  🙂

Pois funcionou, eu é que estava a ser burro. Em vez de nomear uma coluna como "nome" nomeei "user"..  ?  :wallbash:  :wallbash:

Mas já está a funcionar é o que interessa!  😄

Obrigado a todos!

Queres uma dica, se puderes, em vez de usares mysql_num_rows, usa a mysql_numrows

Já agora podes explicar qual é a diferença?

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.