Boa tarde,
Criei a classe e a função "ProdutoDao" e "produtoDao", respectivamente. Ao adicionar um produto, ocorre o seguinte "bug":
Parse error: syntax error, unexpected 'function__construct' (T_STRING), expecting function (T_FUNCTION) in C:\wamp\www\loja\class\ProdutoDao.php on line 7
Seguem abaixo os código dos seguintes arquivos, para análise e correção:
1) ProdutoDao.php:
<?php
class ProdutoDao {
private $conexao;
function__construct($conexao) {
$this->conexao = $conexao;
}
function listaProdutos() {
$produtos = array();
$resultado = mysqli_query("select p.*,c.nome as categoria_nome
from produtos as p join categorias as c on c.id=p.categoria_id");
while($produto_array = mysqli_fetch_assoc($resultado)) {
$categoria = new Categoria();
$categoria->setNome($produto_array['categoria_nome']);
$nome = $produto_array['nome'];
$descricao = $produto_array['descricao'];
$preco = $produto_array['preco'];
$usado = $produto_array['usado'];
$produto = new Produto($nome, $preco, $descricao, $categoria, $usado);
$produto->setId($produto_array['id']);
array_push($produtos, $produto);
}
return $produtos;
}
function insereProduto(Produto $produto) {
$query = "insert into produtos (nome, preco, descricao, categoria_id, usado)
values ('{$produto->getNome()}', {$produto->getPreco()},
'{$produto->getDescricao()}', {$produto->getCategoria()->getId()},
{$produto->isUsado()})";
return mysqli_query($this, $query);
}
function alteraProduto(Produto $produto) {
$query = "update produtos set nome = '{$produto->getNome()}',
preco = {$produto->getPreco()}, descricao = '{$produto->getDescricao()}',
categoria_id= {$produto->getCategoria()->getId()},
usado = {$produto->isUsado()} where id = '{$produto->getId()}'";
return mysqli_query( $query);
}
function buscaProduto($id) {
$query = "select * from produtos where id = {$id}";
$resultado = mysqli_query($this, $query);
$produto_buscado = mysqli_fetch_assoc($resultado);
$categoria = new Categoria();
$categoria->setId($produto_buscado['categoria_id']);
$nome = $produto_buscado['nome'];
$descricao = $produto_buscado['descricao'];
$preco = $produto_buscado['preco'];
$usado = $produto_buscado['usado'];
$produto = new Produto($nome, $preco, $descricao, $categoria, $usado);
$produto->setId($produto_buscado['id']);
return $produto;
}
function removeProduto($id) {
$query = "delete from produtos where id = {$id}";
return mysqli_query($this, $query);
}
}
?>
2) adicionaProduto.php:
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("logica-usuario.php");
verificaUsuario();
$categoria = new Categoria();
$categoria->setId($_POST['categoria_id']);
$nome = $_POST['nome'];
$preco = $_POST['preco'];
$descricao = $_POST['descricao'];
if(array_key_exists('usado', $_POST)) {
$usado = "true";
} else {
$usado = "false";
}
$produto = new Produto($nome, $preco, $descricao, $categoria, $usado);
$produtoDao = new ProdutoDao($conexao);
if($produtoDao->insereProduto($produto)) { ?>
<p class="text-success">O produto <?= $produto->getNome() ?>, <?= $produto->getPreco() ?> foi adicionado.</p>
<?php
} else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <?= $produto->getNome() ?> não foi adicionado: <?= $msg?></p>
<?php
}
?>
<?php include("rodape.php"); ?>
3) cabexalho.php:
<?php
function carregaClasse($nomeDaClasse) {
require_once("class/".$nomeDaClasse.".php");
}
spl_autoload_register("carregaClasse");
error_reporting(E_ALL ^ E_NOTICE);
require_once("mostra-alerta.php");
require_once("conecta.php");
?>
<html>
<head>
<meta charset="utf-8">
<title>Minha Loja</title>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/loja.css" rel="stylesheet">
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="index.php">Minha Loja</a>
</div>
<div>
<ul class="nav navbar-nav">
<li><a href="produto-formulario.php">Adiciona Produto</a></li>
<li><a href="produto-lista.php">Produtos</a></li>
<li><a href="contato.php">Contato</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="principal">
<?php mostraAlerta("success"); ?>
<?php mostraAlerta("danger"); ?>
Fico no aguardo da solução, obrigado!