Ir ao conteúdo
  • Cadastre-se

Erro no mysql_num_rows ...


Abma12

Posts recomendados

Bem pessoal estava eu criando um sistema de login com session em php + mysql ...

Porém certa parte do php precisa do mysql_num_Rows (para verifica os usuarios no db e criar a session ... )

<?php
include "config.php";
$login = $_POST['login'];
$senha = $_POST['senha'];

$sqlc = "SELECT * FROM USERS WHERE Users = '$login' AND Senha ='$senha'";
$sqla = mysql_query($sqlc);

if(mysql_num_rows($sqla) == 1 ) {

$_SESSION['loginSession'] = $login ;
$_SESSION['senhaSession'] = $senha ;

include "Home.php";

}else{

include "Login.php";


}

Quando vou testar logando ele me devolve esse erro :

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\log.php on line 17 :angry:

Link para o comentário
Compartilhar em outros sites

O problema não é exatamente em mysql_num_rows. Tal função deve receber um recurso SQL como parâmetro, mas a consulta SQL não está retornando o recurso. Está retornando um booleano (FALSE).

Tenha certeza de que a consulta feita tem uma sintaxe válida.

Ah, e sempre escape as variáveis na string. Exemplo:


$sqlc = "SELECT * FROM users WHERE users = '". $login. "' AND senha = '". $senha ."'";

Link para o comentário
Compartilhar em outros sites

O problema não é exatamente em mysql_num_rows. Tal função deve receber um recurso SQL como parâmetro, mas a consulta SQL não está retornando o recurso. Está retornando um booleano (FALSE).

Tenha certeza de que a consulta feita tem uma sintaxe válida.

Ah, e sempre escape as variáveis na string. Exemplo:


$sqlc = "SELECT * FROM users WHERE users = '". $login. "' AND senha = '". $senha ."'";

WntD, eu não sou muito experiente em php+mysql ...

Queria saber se consigo corrigir meu problema substituindo a variavel $sqlc pela a variavel que você postou ...

Link para o comentário
Compartilhar em outros sites

Como eu não conheço a tabela 'users' que você está usando no banco de dados, não tem como eu saber se substituindo a variável, irá funcionar.

Confira os nomes das colunas, o nome da tabela, e principalmente, confira se o arquivo 'config.php' estabelece uma conexão com o banco de dados MySQL. Não adianta tentar executar uma query se você sequer esta´conectado ao banco de dados. Nesses casos, mysql_query retorna um booleano FALSE também.

Link para o comentário
Compartilhar em outros sites

Como eu não conheço a tabela 'users' que você está usando no banco de dados, não tem como eu saber se substituindo a variável, irá funcionar.

Confira os nomes das colunas, o nome da tabela, e principalmente, confira se o arquivo 'config.php' estabelece uma conexão com o banco de dados MySQL. Não adianta tentar executar uma query se você sequer esta´conectado ao banco de dados. Nesses casos, mysql_query retorna um booleano FALSE também.

o config.php funciona sim, pois até uso ele na página de cadastro que funciona super bem !

O nome da tabela é USERS (na página de cadastro gravo os usuarios aqui e sempre com sucesso)

e as colonas ...

ID (Primária, AI ) Nome (VARCHAR 255) Email (VARCHAR 255) User (VARCHAR 255) e Senha (VARCHAR 255) ...

Link para o comentário
Compartilhar em outros sites

Então aparentemente o erro está na cláusula 'where'.

Se a coluna com o nome do usuario se chama 'user', você não pode colocar na consulta 'users'.

Seria


$sqlc = "SELECT * FROM users WHERE User = '". $login. "' AND Senha = '". $senha ."'";

Dessa maneira deve dar certo.

Não se esqueça de conferir as maiusculas e minusculas.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...