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

Salvar FK


lorranaas

Pergunta

Pessoal,

 

Tenho o código abaixo, mas quando clico em salvar, dá erro na gravação. O que pode ser?

 

TABELA NO BANCO

CREATE TABLE tab_entradaestoque(

      id int auto_increment primary key not null,

      id_produto int not null,

id_fornecedor int not null,

valorunitario float(10) not null,

quantidade int not null,

nfiscal int not null,
      data_entrada date not null

FOREIGN KEY (id_fornecedor) references tab_fornecedor(id_fornecedor),


      FOREIGN KEY (id_produto) references tab_produto(id_produto) 

);

ENTRADAPRODUTOESTOQUE.PHP


<?php
include 'conexao.php';
$data = date('d-m-Y');


// Recebe o id do produto via GET
$id_cliente = (isset($_GET['id'])) ? $_GET['id'] : '';

// Valida se existe um id e se ele é numérico
if (!empty($id_cliente) && is_numeric($id_cliente)):

    // Captura os dados do produto solicitado
    $conexao = conexao::getInstance();
    $sql = "SELECT * FROM tab_produto WHERE id_produto = :id";
    $stm = $conexao->prepare($sql);
    $stm->bindValue(':id', $id_cliente);
    $stm->execute();
    $cliente = $stm->fetch(PDO::FETCH_OBJ);

endif;

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="css/custom.css">
</head>
<body>
    <div class='container'>
        <fieldset>
            <legend><h1>Formulário - Registrar Entrada - Estoque</h1></legend>
            
            <?php if(empty($cliente)):?>
                <h3 class="text-center text-danger">Cliente não encontrado!</h3>
            <?php else: ?>
                <form action="action_entradaestoque.php" method="post" id='form-contato' enctype='multipart/form-data'>
                    
                <div class="form-group">
                  <label for="nome">Nome</label>
                  <input type="text" class="form-control" id="nome" name="nome" value="<?=$cliente->nome_produto?>" placeholder="Infome o Nome">
                  <span class='msg-erro msg-nome'></span>
                </div>
                
                <div class="form-group">
                  <label for="valor">Valor Unitário</label>
                  <input type="valor" class="form-control" id="valor" name="valor" placeholder="Informe o Valor Unitário">
                  <span class='msg-erro msg-valor'></span>
                </div>
                
                <div class="form-group">
                  <label for="quantidade">Quantidade </label>
                  <input type="quantidade" class="form-control" id="quantidade" name="quantidade" placeholder="Informe a Quantidade Adquirida"disable>
                  <span class='msg-erro msg-quantidade'></span>
                </div>
                
                <div class="form-group">
                  <label for="nfiscal">Nº Nota Fiscal </label>
                  <input type="nfiscal" class="form-control" id="nfiscal" maxlength="15" name="nfiscal" placeholder="Informe o Nº da Nota Fiscal de Compra">
                  <span class='msg-erro msg-nfiscal'></span>
                </div>

                <div class="form-group">
                    <label for="categoria">Fornecedor</label>
                    <select class="form-control" name="categoria" id="categoria">
                        <option value="">Selecione o Fornecedor</option>
                        
                    <?
                    
                    $sql2= mysql_query("SELECT id_fornecedor, nome_fornecedor FROM tab_fornecedor order by nome_fornecedor") or die("Erro");
                    while ( $query2 = mysql_fetch_array($sql2))
                            {
                                    $id_fornecedor = $query2['id_fornecedor'];
                                    echo "<option value='".$query2['id_fornecedor']."'>".$query2['nome_fornecedor']."</option>";                                
                            }

                    ?>            
                        
                    </select>
                </div>
                    
                    <input type="hidden" name="acao" value="editar">
                    <input type="hidden" name="ids" value="<?=$query2->id_fornecedor?>">
                    <input type="hidden" name="id" value="<?=$cliente->id?>">
                    <button type="submit" class="btn btn-primary" id='botao'> 
                      Gravar
                    </button>
                    <a href='indexprodutoestoque.php' class="btn btn-danger">Cancelar</a>
                </form>
            <?php endif; ?>
        </fieldset>

    </div>
    <script type="text/javascript" src="js/custons.js"></script>
</body>
</html>

 

 

 

 

ACTION_ENTRADAESTOQUE.PHP

 


<?


    include "conexao.php";


        // Recebe os dados enviados 
        $acao  = $_POST['acao'];
        $nome = $_POST['nome'];
        $id  = $_POST['id'];
        $valor  = $_POST['valor'];
        $idf  = $_POST['ids'];
        $quantidade = $_POST['quantidade'];
        $nfiscal = $_POST['nfiscal'];
        $categoria = $_POST['categoria'];


        // Valida os dados recebidos
        
        
        
        if ($nome == '' || strlen($nome) < 3){
                $mensagem .= '<li>Favor preencher o Nome.</li>';
        
        }

        elseif($categoria == ''){
        $mensagem .= '<li>Favor preencher a Categoria.</li>';
        
    }
        elseif($nfiscal == ''){
        $mensagem .= '<li>Favor preencher o Número da Nota Fiscal de Compra.</li>';
        
    }
        elseif($quantidade == ''){
        $mensagem .= '<li>Favor preencher a Quantidade.</li>';
        
    }
        elseif($valor == ''){
        $mensagem .= '<li>Favor preencher o Valor Unitário.</li>';
        
    }
    
        else{

            $sql = "insert into tab_entradaestoque(id_produto, valorunitario, quantidade, nfiscal, id_fornecedor, dataentrada) 
                values ('$id','$valor','$quantidade','$nfiscal', '$idf', 'now()')";    
            mysql_query($sql) or die ("Erro na tentativa de gravação");    

 

 

 

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

percebi duas coisas

1) A id de tab_entradaestoque é automática! creio que não deve ser declarada na query de inserção.

2) você está misturando pdo com mysql_*

use apenas um driver

há uns 4 anos que o php.net recomenda não usar mysql_* nunca mais

veja:

mysql_.jpg

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...