Jump to content


Photo

Problema Noa Hora De Conferir Dados


  • Faça o login para participar
1 reply to this topic

#1 Phaeel

Phaeel

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:Guaratinguetá

Posted 05/09/2011, 17:24

Eu estou criando uma pagina de cadastro ai na hora de validar acontece esse erro

<?php
	$erroNome = 0;
	$erroSenha = 0;
	$erroSobrenome = 0;
	$erroDataNasc = 0;
	$erroLogin = 0;
	$erroEmail = 4;
	if($_POST){
		$nome = $_POST['nome'];
		$sobrenome =$_POST['sobrenome'];
		$datanasc = $_POST['datanasc'];
		$nick = $_POST['logincadastro'];
		$senhacadastro = $_POST['senha'];
		$senhacadastro2 = $_POST['senha2'];
		$email =$_POST['email'];
		$receber = $_POST['receber'];
		//verifica se o nome é nulo
		if(trim($nome)==''){
			$erroNome = 1;
		}
		//verifica se o sobrenome é nulo
		if(trim($sobrenome)==''){
			$erroSobrenome = 1;
		}
		//verifica se a data de nascimento é nula
		if(trim($datanasc)==''){
			$erroDataNasc = 1;
		}
		//verifica se ja tem o login
		if(trim($nick)!=''){
			$conferelogin = mysql_query("SELECT * FROM tbl_usuario WHERE usu_nick = '".$nick."'"); 
			if(mysql_num_rows($conferelogin)!=0){ //linha32
				$erroLogin = 2;
			}
		}else{
			$erroLogin = 1;	
		}
		//verifica se ja tem o email
		if(trim($email)!=''){
			$confereemail = mysql_query("SELECT * FROM tbl_usuario WHERE usu_email = '".$email."'"); //linha41
			$numerocolunasemail=mysql_num_rows($confereemail); //linha41
			if($numerocolunasemail!=0){
				$erroEmail = 2;
			}
		}else{
			$erroEmail = 1;	
		}
		//verifica as senhas primeiro se ja digitou a senha e depois se o repete a senha ta igual
		if(trim($senhacadastro)!=0){
			if($senhacadastro=$senhacadastro2){
				$erroSenha = 2 ;
			}
			
		}else{
			$erroSenha=1;
		}
		
	}
	//soma todas as variaveis 
	$soma = $erroDataNasc + $erroEmail + $erroLogin + $erroNome + $erroSenha + $erroSobrenome;
	//se a soma der 0 é que não ouve erros no formulario ai ele adiciona no banco
	if($soma == 0){
		$query = mysql_query("INSERT INTO tbl_usuario (usu_nome, usu_sobrenome,usu_nick,usu_email,usu_senha,usu_datanasc,usu_receber,usu_votou) values ($nome,$sobrenome,$nick,$email,MD5($senhacadastro),$datanasc,$receber,false)");	
	}

?>


o erro
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\videoaula\usuario_cadastra.php on line 32

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\videoaula\usuario_cadastra.php on line 41

#2 Fábio Luciano

Fábio Luciano

    Ativo

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Santa Maria / DF
  • Interesses:Ah eu gosto de tudo :D

Posted 07/09/2011, 04:18

Eu estou criando uma pagina de cadastro ai na hora de validar acontece esse erro

<?php
	$erroNome = 0;
	$erroSenha = 0;
	$erroSobrenome = 0;
	$erroDataNasc = 0;
	$erroLogin = 0;
	$erroEmail = 4;
	if($_POST){
		$nome = $_POST['nome'];
		$sobrenome =$_POST['sobrenome'];
		$datanasc = $_POST['datanasc'];
		$nick = $_POST['logincadastro'];
		$senhacadastro = $_POST['senha'];
		$senhacadastro2 = $_POST['senha2'];
		$email =$_POST['email'];
		$receber = $_POST['receber'];
		//verifica se o nome é nulo
		if(trim($nome)==''){
			$erroNome = 1;
		}
		//verifica se o sobrenome é nulo
		if(trim($sobrenome)==''){
			$erroSobrenome = 1;
		}
		//verifica se a data de nascimento é nula
		if(trim($datanasc)==''){
			$erroDataNasc = 1;
		}
		//verifica se ja tem o login
		if(trim($nick)!=''){
			$conferelogin = mysql_query("SELECT * FROM tbl_usuario WHERE usu_nick = '".$nick."'"); 
			if(mysql_num_rows($conferelogin)!=0){ //linha32
				$erroLogin = 2;
			}
		}else{
			$erroLogin = 1;	
		}
		//verifica se ja tem o email
		if(trim($email)!=''){
			$confereemail = mysql_query("SELECT * FROM tbl_usuario WHERE usu_email = '".$email."'"); //linha41
			$numerocolunasemail=mysql_num_rows($confereemail); //linha41
			if($numerocolunasemail!=0){
				$erroEmail = 2;
			}
		}else{
			$erroEmail = 1;	
		}
		//verifica as senhas primeiro se ja digitou a senha e depois se o repete a senha ta igual
		if(trim($senhacadastro)!=0){
			if($senhacadastro=$senhacadastro2){
				$erroSenha = 2 ;
			}
			
		}else{
			$erroSenha=1;
		}
		
	}
	//soma todas as variaveis 
	$soma = $erroDataNasc + $erroEmail + $erroLogin + $erroNome + $erroSenha + $erroSobrenome;
	//se a soma der 0 é que não ouve erros no formulario ai ele adiciona no banco
	if($soma == 0){
		$query = mysql_query("INSERT INTO tbl_usuario (usu_nome, usu_sobrenome,usu_nick,usu_email,usu_senha,usu_datanasc,usu_receber,usu_votou) values ($nome,$sobrenome,$nick,$email,MD5($senhacadastro),$datanasc,$receber,false)");	
	}

?>


o erro
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\videoaula\usuario_cadastra.php on line 32

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\videoaula\usuario_cadastra.php on line 41


Antes de mais nada, vamos corrigir sua lógica

			if(mysql_num_rows($conferelogin)!=0){ //linha32
				$erroLogin = 2;
			}

Veja só seu código, você está perdendo toda a lógica da instrução if nessa sua linha. O if tem somente uma utilidade, testar o que está em parenteses. No teu código você está testando se ele é diferente de zero, lembre-se que o if testa se é verdadeiro ou falso. O ZERO é considerado falso, então, qualquer número inteiro real, será considerado verdadeiro, então seu "!=0" é completamente desnecessário.


			if(mysql_num_rows($conferelogin)){ //linha32
				$erroLogin = 2;
			}

Isso já lhe basta.

Quanto ao erro em questão, é preciso saber o que está acontecendo quando é executada a instrução a qual o mysql_num_rows() está tentando ler a quantidade de linhas, coloque um or die, na sua instrução e veja o que lhe é retornado e volte aqui.

			$conferelogin = mysql_query("SELECT * FROM tbl_usuario WHERE usu_nick = '".$nick."'") or die(mysql_error()); 





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq