Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Mensagem de erro "mysql_num_rows()"


Jeison Pereira

Pergunta

Olá, pessoal!

Gostaria vocês pode me ajudar para resolver uma problemas, não consegui inserir as informações para dados e apareceu um erro

Mensagem de erro

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\LojaVirtual\carrinho.php on line 21
Conectar o Banco de dados
<?php

$database = "lojavirtual";
$hostname = "localhost";
$username = "root";
$password = "";

$conn=mysql_connect($hostname,$username,$password) or die(mysql_error()); 

if($conn){
    mysql_select_db($database);
}
?>
Esse Código quando clicar um botão para comprar um produtos e vai inserir um produtos para outra pagina de carrinho.
echo"<td><center><a href='carrinho.php?cod=".$cod."&acao='incluir'><img src='imagem/btn_comprar.gif' border='0'></a></center></td>";
Esse os código na pagina de carrinho para testar que vai inserir as informações para banco de dados.
<body>
<?php
$cod = $_GET['cod'];
$acao = $_GET['acao'];

include 'conexao/conn.php';

if($acao = 'incluir'){
    if($cod != ''){
        if(is_numeric($cod)){
            
            $cod= addslashes(htmlentities($cod));
            
            $produtos = "select * from tbl_produtos where ='".$cod."'";
            $produtos_query = mysql_query($produtos,$conn);
            $rows_produtos = mysql_num_rows($produtos_query);
            
            
            if($rows_produtos > 0){
                $prod = mysql_fetch_assoc($produtos_query);
                
                $inserir_carrinho = "insert into tbl_carrinho (id,cod,nome,preço,qtd,sessao)
                values('',".$prod['cod'].",'".$prod['nome']."',".$prod['preço'].", 1 ,".session_id().")";
            }
        }
    }
}

?>
</body>

Espero que vocês me ajudem

Editado por Jeison Pereira
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
A query tem algum problema... troca:

$produtos_query = mysql_query($produtos,$conn);

Por:

$produtos_query = mysql_query($produtos,$conn)OR DIE(mysql_error());

Alterei e testamos para funcionar e surgiu um erro veja

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 2' at line 1

Link para o comentário
Compartilhar em outros sites

  • 0
Está faltando o nome da coluna antes do sinal de igual.

$produtos = "select * from tbl_produtos where ='".$cod."'";
Ou seja:
$produtos = "select * from tbl_produtos where NOME-DA-COLUNA-A-PESQUISAR ='".$cod."'";
Agora já descobri a problemas e resolvi alterar alguns.
$produtos = "select * from tbl_produtos where cod='".$cod."'";
mas tem problemas sessão e apareceu o erro, mas os dados enviaram na banco de dados de carrinho corretamente, mas só no site apreceu erro, não entendo nada, veja em baixo
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\LojaVirtual\carrinho.php:8) in C:\xampp\htdocs\LojaVirtual\carrinho.php on line 10
veja os códigos que eu atualizei alguns carrinho.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php

session_start();

$cod = $_GET['cod'];
$acao = $_GET['acao'];

include 'conexao/conn.php';

if($acao = 'incluir'){
    if($cod != ''){
        if(is_numeric($cod)){
            
            $cod= addslashes(htmlentities($cod));
            
            $produtos = "select * from tbl_produtos where cod='".$cod."'";
            $produtos_query = mysql_query($produtos,$conn) or die(mysql_error());
            $rows_produtos = mysql_num_rows($produtos_query);
            
            
            if($rows_produtos > 0){
                $prod = mysql_fetch_assoc($produtos_query);
                
                $inserir_carrinho = "insert into tbl_carrinho (id,cod,nome,preço,qtd,sessao) values('',".$prod['cod'].",'".$prod['nome']."',".$prod['preço'].",' 1' ,'".session_id()."')";
                
                $inserir_query = mysql_query($inserir_carrinho,$conn) or die (mysql_error());
                
            }
        }
    }
}

?>
</body>
</html>

Espero que me ajudem...

Link para o comentário
Compartilhar em outros sites

  • 0

Jeison, coloque o comando session_start() logo após o início do documento. Ela deve vir antes de qualquer comando...

<?php
session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php

$cod = $_GET['cod'];
$acao = $_GET['acao'];

include 'conexao/conn.php';

if($acao = 'incluir'){
    if($cod != ''){
        if(is_numeric($cod)){
            
            $cod= addslashes(htmlentities($cod));
            
            $produtos = "select * from tbl_produtos where cod='".$cod."'";
            $produtos_query = mysql_query($produtos,$conn) or die(mysql_error());
            $rows_produtos = mysql_num_rows($produtos_query);
            
            
            if($rows_produtos > 0){
                $prod = mysql_fetch_assoc($produtos_query);
                
                $inserir_carrinho = "insert into tbl_carrinho (id,cod,nome,preço,qtd,sessao) values('',".$prod['cod'].",'".$prod['nome']."',".$prod['preço'].",' 1' ,'".session_id()."')";
                
                $inserir_query = mysql_query($inserir_carrinho,$conn) or die (mysql_error());
                
            }
        }
    }
}

?>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0
Jeison, coloque o comando session_start() logo após o início do documento. Ela deve vir antes de qualquer comando...

<?php
session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php

$cod = $_GET['cod'];
$acao = $_GET['acao'];

include 'conexao/conn.php';

if($acao = 'incluir'){
    if($cod != ''){
        if(is_numeric($cod)){
            
            $cod= addslashes(htmlentities($cod));
            
            $produtos = "select * from tbl_produtos where cod='".$cod."'";
            $produtos_query = mysql_query($produtos,$conn) or die(mysql_error());
            $rows_produtos = mysql_num_rows($produtos_query);
            
            
            if($rows_produtos > 0){
                $prod = mysql_fetch_assoc($produtos_query);
                
                $inserir_carrinho = "insert into tbl_carrinho (id,cod,nome,preço,qtd,sessao) values('',".$prod['cod'].",'".$prod['nome']."',".$prod['preço'].",' 1' ,'".session_id()."')";
                
                $inserir_query = mysql_query($inserir_carrinho,$conn) or die (mysql_error());
                
            }
        }
    }
}

?>
</body>
</html>

Agora funcionou e não apareceu mais mensagem de erro.. obrigado!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...