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 Fernando Rafael
      Estou tendo problemas com a leitura de porta serial com PHP, consigo facilmente escrever na mesma, mas sempre que no comando de abertura da porta eu coloco que haverá permissão de leitura o PHP trava e fica carregando infinitamente, e a porta fica bloqueada e só libera quando reiniciado o computador.
       
      Segue o cod:
      exec('MODE COM1:9600,n,8,1'); //seta configuração na porta COM $fp=fopen("COM1","r+b"); if(!$fp) {     echo("Erro ao abrir a porta com1");     exit; } else {         echo("COM1 aberta <br>"); } fwrite($fp,Chr(5));  //escrevendo valor na porta sleep(1); //pausa para retorno dos dados echo (fgets($fp)); fclose($fp); já tentei  colocar:
      fopen("COM1", "r+b");
      fopen("COM1", "r+t");
      fopen("COM1", "r");
      fopen("COM1", "w+");
      fopen("COM1", "r+");
       
      para escrever consigo normal, com o fopen("COM1", "w");.  mas já para ler.....
       
      Notei que na internet tem muito sobre esse problema, inclusive falaram em permissões de usuário, sendo que nos casos em que conseguiram, estavam usando o Linux.
      Eu estou usando o W7 e W10 com PHP 5.2, se for o caso de permissões, como resolvo isso? preciso configurar mais alguma coisa no php.ini?
       
      Também já tentei usar uma classe: phpSerial
       
      Mas retorna o seguinte erro:
      Warning: Reading serial port is not implemented for Windows in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\balanca\php_serial.class.php on line 503
       
       
    • By rogerblower
      Pessoal tenho a seguinte tabela
      id | id_etapa | id_evento | posicao | nome | pontos
      1  |  1             |        2         |   1           | joao      |  10
      2  |  1             |        2         |   2           | pedro    |  9
      3  |  1             |        2         |   3           | maria    |  8
      4  |  1             |       2          |   4           | jose       |  7
      5  |  2             |      2          |   3           | joao       |  8
      6  |  2             |  2              |   1           | pedro    | 10
      7  |  2             |   2             |  2            | maria    |  9
      8  |  2             |  2              |   4          | jose        |  7
       
      O resultado da consulta pretendido é este
      Pos  |  nome |   pontos
      1      |  pedro   | 19
      2      |   joao   | 18
      3      |  maria  |  17
      4      |  jose  |  14
       
      Com esta consulta não ordenando a coluna posicao como esperado, ela repete a posicao e não faz a soma, ex:
       1     joao     10
       1     pedro     10
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome, posicao ORDER BY pontos DESC posicao ASC"); Com esta outra consulta a soma esta correta o agrupamento nome esta correto, não se repetem, mas a coluna posicao fica fora de ordem;
       
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome ORDER BY pontos DESC posicao ASC"); Não estou conseguindo acertar a consulta, alguém me ajuda?
    • By rjlfurtado
      Segue abaixo o exemplo de como seria feito em SQL:
      CREATE TABLE tabela ( campo1 DOUBLE, campo2 DOUBLE, divisao DOUBLE AS (campo1/campo2) ); Agora eu preciso criar uma migração no Laravel 6, segue exemplo abaixo:
      $table->integer('qtd_saida'); $table->decimal('valor_uni', 8, 2); $table->double('valor_total')->as(qtd_saida * valor_uni);  
    • By Marxrj
      Olá a todos!,
      Queria aqui uma dica se alguém sabe como alinhar fotos no centro pelo bootstrap.
      Usando o padrão fotos retratos fica como abaixo
      __________  __________
      __________
       
      Mas eu queria que quando tivesse um número impar, a foto não ficasse alinhada na esquerda e sim centralizada como abaixo
      __________  __________
                __________
       
      Estou usando este padrão abaixo aonde ele alinha duas fotos ao lado, mas quando tem somente um ou em número impar, essa não centraliza e sim fica a esquerda.
      <div class="col-xs-12 col-sm-10 col-lg-6 col-md-3">
    • By JoãoRicardo.Lima
      Olá pessoal blz?.
      Estou com problemas para ler um xml, estou pegando ele com simplexml_load_file(), quando eu dou um vardump ele me mostra todas as propriedades e tals, mas quando eu tento pegar a propriedade(exemplo $xml->emit) ele me retorna null, abaixo está o código.
       
      $arquivo = $_FILES['xml_conta']; $xml = simplexml_load_file($arquivo['tmp_name']); var_dump($xml->ide); Já tentei pegar o arquivo direto do diretório mas da no mesmo. Abaixo o meu var_dump().
       
      object(SimpleXMLElement)#2 (3) { ["@attributes"]=> array(1) { ["versao"]=> string(4) "4.00" } ["NFe"]=> object(SimpleXMLElement)#4 (2) { ["infNFe"]=> object(SimpleXMLElement)#6 (9) { ["@attributes"]=> array(2) { ["versao"]=> string(4) "4.00" ["Id"]=> string(47) "NFe51191203927792000132550010003900572477841258" } ["ide"]=> object(SimpleXMLElement)#8 (22) { ["cUF"]=> string(2) "51" ["cNF"]=> string(8) "47825479" ["natOp"]=> string(33) "Venda Terceiros" ["mod"]=> string(2) "50" ["serie"]=> string(1) "1" ["nNF"]=> string(6) "397894" ["dhEmi"]=> string(25) "2019-12-05T18:35:33-04:00" ["dhSaiEnt"]=> string(25) "2019-12-05T18:35:33-04:00" ["tpNF"]=> string(1) "1" ["idDest"]=> string(1) "1" ["cMunFG"]=> string(7) "51074" ["tpImp"]=> string(1) "3" ["tpEmis"]=> string(1) "2" ["cDV"]=> string(1) "5" ["tpAmb"]=> string(1) "2" ["finNFe"]=> string(1) "2" ["indFinal"]=> string(1) "1" ["indPres"]=> string(1) "1" ["procEmi"]=> string(1) "0" ["verProc"]=> string(7) "3.5.1.2" ["dhCont"]=> string(25) "2019-12-05T15:32:22-04:00" ["xJust"]=> string(23) "sem conexao com o sefaz" }  
×

Important Information

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