Ir ao conteúdo

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


Ir à solução Resolvido por Marcelo Calazans,

Posts recomendados

Postado

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); 

?>
       

 

  • Administrador
Postado
$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.

 

 

Postado

@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 

  • Administrador
Postado

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.

  • Solução
Postado

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

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!