Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou tendo um problema para tratar um SELECT vazio em php. Esse SELECT está montado da seguinte maneira:
$senha = mysql_query("SELECT senha FROM users WHERE senha='$senha2'")
Feito isso, para ter o resultado da consulta:
if(!empty($senha)){
$senha_banco = mysql_result($senha,0,senha);
}
Explicando o ambiente:
$senha2 é um campo do formulário inserido pelo usuario
O problema é que quando a senha do formulário($senha2) é diferente da senha do banco apresenta o seguinte erro:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4
Não foi possível localizar nenhuma linha no SELECT, porém como faço para tratar esse select vazio? O meu if usando o !empty está passando mesmo quando o SELECT não tem resultado, creio que a consulta vem com alguma "sujeira". Teria um outro jeito de filtrar no if para não passar caso o SELECT venha vazio?
>
Tente utilizar o mysql_num_rows
Essa função retorna para você quantos registros foram selecionados.
No caso, você faz uma comparação,
se selecionou 0 -> senha incorreta
se selecionou 1 -> login efetuado com sucesso.
http://php.net/manual/pt_BR/function.mysql-num-rows.php
Wingdings, obrigado. Deu certo.
Para quem precisar futuramente, fiz desse jeito:
$num_rows_senha = mysql_num_rows($senha);
if($num_rows_senha > 0){
$senha_banco= mysql_result($senha,0,senha);
}
Tente utilizar o mysql_num_rows
Essa função retorna para você quantos registros foram selecionados.
No caso, você faz uma comparação,
se selecionou 0 -> senha incorreta
se selecionou 1 -> login efetuado com sucesso.
http://php.net/manual/pt_BR/function.mysql-num-rows.php