• Announcements

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   02/14/2016

      Prezados membros do Fórum do Clube do Hardware,

      Está aberto o processo de seleção de novos moderadores para diversos setores do fórum. Os requisitos são:
        Pelo menos 1000 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas ao formulário abaixo:    Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • dif

      Poste seus códigos corretamente!   05/22/2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Abma12

Erro no mysql_num_rows ...

6 posts in this topic

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:

Share this post


Link to post
Share on other sites

#2   Posted (edited)

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 ."'";

Edited by WntD

Share this post


Link to post
Share on other 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 ...

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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) ...

Share this post


Link to post
Share on other 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.

Share this post


Link to post
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