Ir ao conteúdo
  • Cadastre-se

PHP mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given


Ir à solução Resolvido por Marcelo Calazans,

Posts recomendados

Esta dando esse erro, to batendo muita cabeça com isso, e nao consigo resolver ME AJUDEEEEM!

<?php
    session_start();
    include 'conecta.php'; 
    header('Content-Type: text/html; charset=utf-8');
    $nome = $_POST["nome"];
    $cpf = $_POST["cpf"];
    $rg = $_POST["rg"];
    $nascimento = $_POST["nascimento"];
    $estadocivil = $_POST["estadocivil"];
    $sexo = $_POST["sexo"];
    $cep = $_POST["cep"];
    $estado = $_POST["estado"];
    $cidade = $_POST["cidade"];
    $bairro = $_POST["bairro"];
    $logradouro = $_POST["logradouro"];
    $numero = $_POST["numero"];
    $complemento = $_POST["complemento"];
    $banco = $_POST["banco"];
    $agencia = $_POST["agencia"];
    $conta = $_POST["conta"];
    $celular = $_POST["celular"];
    $senha = $_POST["senha"];
    $email = $_POST["email"]; 
    $status = "ativo";

    mysqli_select_db($conecta, "aj") or  print(mysqli_error());
    
    $query = mysqli_query($conecta,"SELECT * FROM 'tb_cliente' WHERE email='$email'");
    $rownum = mysqli_num_rows($query);  

    if ($rownum  > 0){
        echo "
        <script type='text/javascript'>
        alert('Email já cadastrado. Insira outro.');
        window.location='../login.php';
        </script> "; 
          } else {
    
    $sql = "INSERT INTO 'tb_cliente' ('nome', 'cpf', 'rg', 'nascimento', 'estadocivil', 'sexo', 'cep', 'estado','cidade','bairro','logradouro','numero','complemento', 'banco', 'agencia', 'conta', 'celular' 'email','senha','status')
             VALUES ('$nome', '$cpf', '$rg', '$nascimento', '$estadocivil', '$sexo','$cep','$estado','$cidade','$bairro','$logradouro','$numero','$complemento', '$banco', '$agencia', '$conta' '$celular',,'$email', '$senha', '$status')";  

    mysqli_query($conecta, $sql); 
             
    //echo $sql;
    //header("location:../login.php");
     //echo "
       // <script type='text/javascript'>
        //alert('Cadastro efetuado com sucesso');
       //window.location='../login.php';
        //</script> "; 


   }
    mysqli_close($conecta); 

?>
       

 

Link para o comentário
Compartilhar em outros sites

  • Administrador
$query = mysqli_query($conecta,"SELECT * FROM 'tb_cliente' WHERE email='$email'");

Está errado. O correto é:

 

$query = mysqli_query("SELECT * FROM 'tb_cliente' WHERE email='$email'");

Uma dica: para fins de otimização, nunca use "SELECT *". Sempre especifique nominalmente quais colunas deseja selecionar. O seu código é um excelente exemplo de código mal otimizado, você está mandando selecionar tudo do banco de dados apenas para ver se um email já está cadastrado. Neste caso, o ideal seria algo como:

 

$query = mysqli_query($conecta,"SELECT nome FROM 'tb_cliente' WHERE email='$email'");

Esta parte também está errada:

 

mysqli_query($conecta, $sql);

O correto é:

mysqli_query($sql);

Indo mais além, há um problema estrutural em seu código, pois atualmente prefere-se usar o formato de orientação por objetos. Veja os exemplos em https://php.net/manual/en/mysqli.query.php.

 

 

Link para o comentário
Compartilhar em outros sites

@Gabriel Torres agora esta dando problema em outras linhas


Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\Dcores\login\formulario.php on line 29

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\Dcores\login\formulario.php on line 42

 

ai triste 

Link para o comentário
Compartilhar em outros sites

  • Administrador

coloque o ,$conecta ao final da linha então:

$query = mysqli_query("SELECT nome FROM 'tb_cliente' WHERE email='$email'",$conecta);

Note que esta estrutura que você está usando não é a ideal, você deve preferencialmente usar o modelo orientado a objetos conforme indicado.

Link para o comentário
Compartilhar em outros sites

  • Solução

@jennife rqueres Já verificou se o conteúdo da variável $query não é false ou null? Esse erro é típico disso.

 

Vendo a linha: $query = mysqli_query($conecta,"SELECT * FROM 'tb_cliente' WHERE email='$email'");, o problema pode estar na variável $conecta, que está vindo provavelmente de antes deste código, na include 'conecta.php';

 

Abaixo tem um resumo de como funciona a mysqli_query:

http://www.w3bai.com/pt/php/func_mysqli_query.html

 

Boa sorte colega.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...