Jump to content

Question

Não estou conseguindo inserir dados em uma tabela n:m

Codigo do formulario: 

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset ="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="../_css/botoes.css">
     <link rel="stylesheet" type="text/css" href="../_css/formulario.css">
    <title>Cadastro de Pedido/Produto</title>
</head>
<body>
 <!-- Menu -->
 <nav class="navbar navbar-expand-lg navbar-light bg-primary">
        <div class="data" style="text-align:right;">
            <script type="text/javascript" src="../js/data.js"></script>
        </div>
        <div class="container">
            <div class="collapse navbar-collapse" id="navbarSite">
                <ul class="navbar-nav mr-auto mb-0 mx-auto">
                    <li class="nav-item">
                        <a class="nav-link" href="../index.php">Inicio</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="../read/listarPedidoProduto.php"> Tabela </a>
                    </li>
                </ul>
            </div>
            </div>
        <div class="hora">
            <label ID="Clock">00:00:00</label>
            <script type="text/javascript" src="../js/hora.js"></script>
        </div>
    </nav>
    <!--Fim do menu-->
    <div class="container">
    <h1 class="text-center"> Cadastro de Pedido Produto</h1>
    <form method="post" action="processaPedidoProduto.php" class="form-signin">
        <input type="text" name="pedido_numero" class="form-control" placeholder="Numero do Pedido"> <br><br>
        <input type="text" name="produto_codigo" class="form-control"  placeholder="Codigo do Produto"><br><br>
        <input type="text" name="quantidade" class="form-control"  placeholder=" Quantidade Pedida"><br><br>
        <input type="submit" name="enviarCadastro" value="Cadastrar" class="form-control btn btn-estilo"><br><br>
        <input type="reset" value="Apagar" class="form-control btn btn-estilo">
    </form>
    <div class="container text-center">
    <?php
        if(isset($_SESSION['msg'])){
            echo $_SESSION['msg'];
            unset($_SESSION['msg']);
        }
    ?>
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script src="../js/personalizado.js"></script>
</body>
</html>

Codigo que envia os dados para o banco:

<?php
session_start();
include("../conexao.php");
    $pedido_numero =$_POST['pedido_numero'];
    $produto_codigo =$_POST['produto_codigo'];
    $quantidade =$_POST['quantidade'];
 $sql = "INSERT INTO pedido_produto(pedido_numero, produto_codigo, quantidade) VALUES($pedido_numero, '$produto_codigo', $quantidade)";
   if($conexao->exec($sql)){
    $_SESSION['msg'] = "<p style = 'color:green;'>Cadastro Realizado com sucesso!</p>";
   }else{
    $_SESSION['msg'] = "<p style = 'color:red;'>Erro: Cadastro falhou!</p>";
   }
header("Location: cadastrarPedidoProduto.php");
?>

codigo da tabela em questão:

CREATE TABLE IF NOT EXISTS `pedido_produto` (
  `pedido_numero` INT NOT NULL,
  `produto_codigo` VARCHAR(45) NOT NULL,
  `quantidade` INT NOT NULL,
  PRIMARY KEY (`pedido_numero`, `produto_codigo`),
  INDEX `fk_produto_codigo_idx` (`produto_codigo` ASC) ,
  INDEX `fk_pedido_numero_idx` (`pedido_numero` ASC) ,
  CONSTRAINT `fk_produto_pedido`
    FOREIGN KEY (`pedido_numero`)
    REFERENCES .`pedido` (`numero`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_produto_codigo`
    FOREIGN KEY (`produto_codigo`)
    REFERENCES .`produto` (`codigo`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

 

Estou conseguindo visualizar e deletar os dados, mas inserir e atualizar, não estou conseguindo.
Obs: tenho outras 3 tabelas e utilizo o mesmo comando para inserir e elas inserem tudo certinho

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

"Utilizando o mesmo código", porém com

uma tabela diferente, obtive sucesso,

sendo assim, suponho que o erro possa

estar em sua tabela.

 

Segue exemplo utilizado:

 

 

TABELA A SER UTILIZADA

CREATE TABLE pedido_produto (
	pedido_numero INT NOT NULL,
	produto_codigo VARCHAR(45) NOT NULL,
	quantidade INT NOT NULL,
	PRIMARY KEY (pedido_numero)
);

 

CÓDIGO [ cadastrarPedidoProduto.php ]

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset ="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="../_css/botoes.css">
     <link rel="stylesheet" type="text/css" href="../_css/formulario.css">
    <title>Cadastro de Pedido/Produto</title>
</head>
<body>
 <!-- Menu -->
 <nav class="navbar navbar-expand-lg navbar-light bg-primary">
        <div class="data" style="text-align:right;">
            <script type="text/javascript" src="../js/data.js"></script>
        </div>
        <div class="container">
            <div class="collapse navbar-collapse" id="navbarSite">
                <ul class="navbar-nav mr-auto mb-0 mx-auto">
                    <li class="nav-item">
                        <a class="nav-link" href="../index.php">Inicio</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="../read/listarPedidoProduto.php"> Tabela </a>
                    </li>
                </ul>
            </div>
            </div>
        <div class="hora">
            <label ID="Clock">00:00:00</label>
            <script type="text/javascript" src="../js/hora.js"></script>
        </div>
    </nav>
    <!--Fim do menu-->
    <div class="container">
    <h1 class="text-center"> Cadastro de Pedido Produto</h1>
    <form method="post" action="processaPedidoProduto.php" class="form-signin">
        <input type="text" name="pedido_numero" class="form-control" placeholder="Numero do Pedido"> <br><br>
        <input type="text" name="produto_codigo" class="form-control"  placeholder="Codigo do Produto"><br><br>
        <input type="text" name="quantidade" class="form-control"  placeholder=" Quantidade Pedida"><br><br>
        <input type="submit" name="enviarCadastro" value="Cadastrar" class="form-control btn btn-estilo"><br><br>
        <input type="reset" value="Apagar" class="form-control btn btn-estilo">
    </form>
    <div class="container text-center">
    <?php
        if(isset($_SESSION['msg'])){
            echo $_SESSION['msg'];
            unset($_SESSION['msg']);
        }
    ?>
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script src="../js/personalizado.js"></script>
</body>
</html>

 

CÓDIGO [ processaPedidoProduto.php ]

<?php
session_start ();

# SIMPLE CONN
$conexao = new PDO (
	'mysql:host=localhost;dbname=teste_001;', 'root', ''
);

$pedido_numero = $_POST['pedido_numero'];
$produto_codigo = $_POST['produto_codigo'];
$quantidade = $_POST['quantidade'];

$sql = "
	INSERT INTO pedido_produto ( pedido_numero, produto_codigo, quantidade )
	VALUES (
		$pedido_numero, '$produto_codigo', $quantidade
	)
";

if ( $conexao->exec ( $sql ) ) {
	$_SESSION['msg'] = "<p style = 'color:green;'>Cadastro Realizado com sucesso!</p>";
} else {
	$_SESSION['msg'] = "<p style = 'color:red;'>Erro: Cadastro falhou!</p>";
}

header ( "Location: cadastrarPedidoProduto.php" );

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By drx
      Olá pessoal!
       
      Pergunta:  Dá para desenvolver qualquer tipo de sistema web com WordPress?
      Por exemplo: Quero desenvolver um sistema multinível. É tranquilo?
      Aguardo.
    • By thgsousa3122
      <?php $url = 'www.site.com'; $dadosSite = file_get_contents($url); echo $dadosSite; ?> <script type="text/javascript"> window.onload = function(){ var x = document.getElementsByClassName("fraction")[0].innerHTML= "100"; } </script> Glr tenho esse codigo, eu queria alterar o conteudo que tem como classe "fraction", porem ele nao da resposta, alguem tem alguma sujestão?
    • By brunoogm
      Pessoal, vou iniciar um desenvolvimento mobile usando Xamarin
      e gostaria de saber se alguém conhece alguma maneira
      ou tenha algum doc. de como utilizar PHP e MySql (e se necessário Json)
      para realizar um CRUD e a partir daí eu poder me entender com a plataforma...
       
      Desde já obrigado.
       
       
    • By drx
      Olá pessoal!
       
      Me tirem uma dúvida. Já desenvolvo com vb6 já faz algum tempo. E também venho incrementando o conhecimento para desenvolver para web com php e por aí vai.
      A pergunta que não quer calar: Com o VS.NET eu desenvolvo para desktop e web ?
      Por que a pergunta? Porque quero investir tempo em um IDE que me atenda as duas coisas.
      Aguardo
    • By eduardaarosaa
      Eu estou fazendo um sistema com multipolos uploads de aquivos.
       
      Aqui ele está movendo o arquivo para pasta upload: 
       $upload = $request->image[$i]->storeAs('upload', $nameFile);
      Ao dar var_dump nesta variável ela retorna: 
       
       string(38) "upload/172118201908225d5ef93e4d803.png" string(38) "upload/172118201908225d5ef93e4f9b2.png" string(38) "upload/172118201908225d5ef93e50899.png" string(38) "upload/172118201908225d5ef93e51b72.png"
       
      São os 4 arquivos que deram upload, porém está em string e eu queria usar em array para separar em variáveis e adicionar no banco. 
       
      Use o explode assim: 
      $array = explode(",", $upload);
      Então ele retornou vários arrays com o mesmo indice: 
       
      array(1) { [0]=> string(38) "upload/172322201908225d5ef9ba3cf15.png" } array(1) { [0]=> string(38) "upload/172322201908225d5ef9ba3edab.png" } array(1) { [0]=> string(38) "upload/172322201908225d5ef9ba3fbcc.png" } array(1) { [0]=> string(38) "upload/172322201908225d5ef9ba4163a.png" }
       
      Como faço para poder separar esses arrays? Ou mudar os índices? Se alguém souber .. 
      Obrigada!!!
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.