Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

1stVieira

Guardar ID de um SELECT para realizar o cadastramento no Banco de Dados.

Recommended Posts

Olá a todos! Estou com uma dúvida em relação a realizar um cadastro no banco de dados (SQL) a partir de um formulário de um projeto.

 

Possuo duas tabelas, Categoria e Itens, na qual a tabela Itens possui uma FOREIGN KEY com a tabela Categorias.

 

Na página de Categorias consigo realizar os cadastro das mesmas sem problemas e elas estão sendo aplicadas em um SELECT na página de Cadastro dos Itens. O problema está sendo cadastrar os Itens no Banco de Dados. Estou utilizando PHP Orientado à Objetos

 

Página de Adição de Pedidos

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Adição de Item</title>
	</head>
	<body>
		<div>
			<a href="modificarCardapio.php" class="link_home"><i class="fa fa-home"></i></a>
		</div>
		<div>
			<div>
				<h1>Adicionar Itens ao Cardápio</h1>
			</div>	
			<div>
				<form action="#" method="POST">
					<label>Categoria:</label>
					<select name="selecionarcat">
						<option selected>Selecione a Categoria</option>
						<?php
								require_once"../models/conexao.class.php";
								require_once"../models/categoriaDAO.class.php";

								$catDAO = new categoriaDAO();
								$ret = $catDAO->buscarTodasCategorias();
								if(count($ret) > 0){
									foreach ($ret as $dado){
									 echo "<option value='".$dado->idcategoria."'>".$dado->descritivo."</option>";
									}
								}
							?>	
					</select>
					<br><br>
					<a href="addcategoria.php"><input type="button" value="Adicionar nova Categoria"></a>
					<p>
						<label>Nome do Item: </label>
						<input type="text" name="nomeproduto">
					</p>
					<p>
						<label>Descrição: </label>
						<input type="text" name="descricao">
					</p>
					<p>
						<label>Preço: </label>
						<input type="text" name="preco">
					</p>
					<br>
					<input type="submit" value="Adicionar">
				</form>
			</div>
		</div>
	</body>
</html>
<?php
	if($_POST){
		require_once "../models/conexao.class.php";
		require_once "../models/item.class.php";
		require_once "../models/itemDAO.class.php";
		$item = new item(null, $_POST["nomeproduto"], $_POST["descricao"], null, $_POST["preco"]);
		$itemDAO = new itemDAO();
		$itemDAO->adicionar($item);
		header("Location:modificarCardapio.php");
	}
?>

ItemDAO.php

<?php
	class itemDAO extends conexao{
		function __construct(){
			parent:: __construct();
		}
		function adicionar($item){
			$sql="INSERT INTO itens (nomeprod, descricao, preco, id_categoria) VALUES(?, ?, ?, ?)";
			try{
				$stm = $this->db->prepare($sql);
				$stm->bindValue(1, $item->getNomeproduto());
				$stm->bindValue(2, $item->getDescricao());
				$stm->bindValue(3, $item->getPreco());
				$stm->bindValue(4, $item->getCategoria());

				$stm->execute();
				$this->db = null;
			}
			catch(Exception $e){
				die($e->getMessage());
			}
		}
?>

Item.class.php

<?php
	class item{
		private $iditem;
		private $nomeproduto;
		private $descricao;
		private $categoria;
		private $preco;

		function __construct($iditem, $nomeproduto, $descricao, $categoria, $preco){
			$this->iditem=$iditem;
			$this->nomeproduto=$nomeproduto;
			$this->descricao=$descricao;
			$this->categoria=$categoria;
			$this->preco=$preco;
		}

		function getIditem(){
			return $this->iditem;
		}

		function getNomeproduto(){
			return $this->nomeproduto;
		}

		function getDescricao(){
			return $this->descricao;
		}
		
		function getCategoria(){
		    return $this->categoria;
		}

		function getPreco(){
			return $this->preco;
		}

		function setIditem($iditem){
			$this->iditem=$iditem;
		}

		function setNomeproduto($nomeproduto){
			$this->nomeproduto=$nomeproduto;
		}

		function setDescricao($descricao){
			$this->descricao=$descricao;
		}
		
		function setCategoria($categoria){
		    $this->categoria=$categoria;
		}

		function setPreco($preco){
			$this->preco=$preco;
		}
	}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.