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;
}
}
?>