Buenas, Estou tendo problemas com o cadastro de fornecedores. Fiz igual ao cadastro de cliente mas quando cadastro um fornecedor nao retorna a classe listar nem cadastra o fornecedor no banco...
Classe Fornecedor Model
<?php
class FornecedorModel
{
private $conexao;
private $id;
private $nome_fornecedor;
private $nome_fantasia;
private $cpf;
private $cnpj;
private $endereco;
private $bairro;
private $cep;
private $cidade;
private $estado;
private $telefone;
private $celular;
private $fax;
private $email;
private $site;
private $data_cadastro;
private $tipo;
function getId() {
return $this->id;
}
function setId($id) {
$this->id = $id;
}
function getTipo() {
return $this->tipo;
}
function getNome_Fornecedor() {
return $this->nome_fornecedor;
}
function getNome_Fantasia() {
return $this->nome_fantasia;
}
function getCpf() {
return $this->cpf;
}
function getCnpj() {
return $this->cnpj;
}
function getEndereco() {
return $this->endereco;
}
function getBairro() {
return $this->bairro;
}
function getCep() {
return $this->cep;
}
function getCidade() {
return $this->cidade;
}
function getEstado() {
return $this->estado;
}
function getTelefone() {
return $this->telefone;
}
function getCelular() {
return $this->celular;
}
function getFax() {
return $this->fax;
}
function getEmail() {
return $this->email;
}
function getSite() {
return $this->site;
}
function getData_Cadastro() {
return $this->data_cadastro;
}
function setNome_Fornecedor($nome_fornecedor) {
$this->nome_fornecedor = $nome_fornecedor;
}
function setNome_fantasia($nome_fantasia) {
$this->nome_fornecedor = $nome_fantasia;
}
function setCpnj($cnpj) {
$this->cnpj = $cnj;
}
function setCpf($cpf) {
$this->cpf = $cpf;
}
function setEndereco($endereco) {
$this->endereco = $endereco;
}
function setTelefone($telefone) {
$this->telefone = $telefone;
}
function setCelular($celular) {
$this->celular = $celular;
}
function setTipo($tipo) {
$this->tipo = $tipo;
}
function setFax($Fax) {
$this->fax = $fax;
}
function setEmail($email) {
$this->email = $email;
}
function setSite($site) {
$this->site = $site;
}
function setData_Cadastro($data_cadastro) {
$this->data_cadsatro = $data_cadastro;
}
function __construct()
{
try
{
//Cria a conexão com o BD
$this->conexao = new PDO("mysql:host=127.0.0.1; port=3306; dbname=pw2b2015","root","");
$this->conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Houve um erro ao conectar com o BD";
echo "<br>";
echo $e->getMessage();
}
}
public function consultar()
{
try
{
//Código SQL responsável por realizar a consulta no banco de dados
$sql = "SELECT * FROM fornecedor";
//Prepara a instrução SQL
$query = $this->conexao->prepare($sql);
//Executa a Instrução SQL
$query->execute();
//Cria um array/Matriz com os dados selecionados no BD
$arrayDados = $query->fetchAll(PDO::FETCH_ASSOC);
return $arrayDados;
}
catch(PDOException $e)
{
echo "Houve um erro ao selecionar os fornecedores";
echo "<br>";
echo $e->getMessage();
return false;
}
}
public function gravar()
{
try
{
//Código SQL responsável por realizar o INSERT no banco de dados
//Na cláusula VALUES, cria-se parâmetros cujos valores serão setados pelo bindValue
$sqlInsert = "INSERT INTO fornecedor(tipo, nome_fornecedor, nome_fantasia, cpf, "
. "cnpj, endereco, bairro, cep, cidade, estado, telefone, celular, email, fax, site, data_cadastro) "
. "VALUES(:tipo, :nome_fornecedor, :nome_fantasia, :cpf, :cnpj, :endereco, :bairro, :cep,"
. ":cidade, :estado, :telefone, :celular, :email :fax, :site, :data_cadastro,)";
$sqlUpdate = "UPDATE fornecedor SET nome_fornecedor = :nome_fornecedor, nome_fantasia = :nome_fantasia, cpf = :cpf, "
. " cnpj = :cnpj, edenreco = :endereco, bairro = :bairro, cep = :cep, cidade = :cidade, estado = :estado, telefone = :telefone, celular = :celular, email = :email, fax = :fax, site = :site ,data_cadastro = :data_cadastro, "
. "WHERE id_fornecedor = :id";
//Prepara a instrução SQL
if($this->id > 0)
{
$query = $this->conexao->prepare($sqlUpdate);
$query->bindValue(":id", $this->id);
}
else
{
$query = $this->conexao->prepare($sqlInsert);
}
//Passa os valores para os Parâmetros
$query->bindValue(":tipo", $this->tipo);
$query->bindValue(":nome_fornecedor", $this->nome_fornecedor);
$query->bindValue(":nome_fantasia", $this->nome_fantasia);
$query->bindValue(":cpf", $this->cpf);
$query->bindValue(":cnpj", $this->cnpj);
$query->bindValue(":endereco", $this->endereco);
$query->bindValue(":bairro", $this->bairro);
$query->bindValue(":cep", $this->cep);
$query->bindValue(":cidade", $this->cidade);
$query->bindValue(":estado", $this->estado);
$query->bindValue(":telefone", $this->telefone);
$query->bindValue(":celular", $this->celular);
$query->bindValue(":email", $this->email);
$query->bindValue(":fax", $this->fax);
$query->bindValue(":site", $this->site);
$query->bindValue(":data_cadastro", $this->data_cadastro);
//Executa a Instrução SQL
$query->execute();
return true;
}
catch(PDOException $e)
{
echo "Houve um erro ao gravar o registro";
echo "<br>";
echo $e->getMessage();
return false;
}
}
public function deletar($id)
{
try
{
$sql = "DELETE FROM fornecedor WHERE id_fornecedor = :id";
$query = $this->conexao->prepare($sql);
$query->bindValue(":id", $id);
$query->execute();
return true;
}
catch (PDOException $e)
{
echo "Erro ao deletar o registro";
echo "<br>";
echo $e->getMessage();
return false;
}
}
public function selecionar($id)
{
try
{
//Código SQL responsável por realizar a consulta no banco de dados
$sql = "SELECT * FROM fornecedor WHERE id_fornecedor = :id";
//Prepara a instrução SQL
$query = $this->conexao->prepare($sql);
//Passa parâmetro :id
$query->bindValue(":id", $id);
//Executa a Instrução SQL
$query->execute();
//Cria um array com o registro selecionado no BD
$registro = $query->fetch(PDO::FETCH_ASSOC);
$this->id = $registro["id_fornecedor"];
$this->tipo = $registro["tipo"];
$this->nome = $registro["nome_fornecedor"];
$this->nome_fantasia = $registro["nome_fantasia"];
$this->cpf = $registro["cpf"];
$this->cnpj = $registro["cnpj"];
$this->endereco = $registro["endereco"];
$this->bairro = $registro["bairro"];
$this->cidade = $registro["cidade"];
$this->estado = $registro["estado"];
$this->cep = $registro["cep"];
$this->data_cadastro = $registro["data_cadastro"];
$this->fax = $registro["fax"];
$this->telefone = $registro["telefone"];
$this->celular = $registro["celular"];
$this->email = $registro["email"];
$this->site = $registro["site"];
return true;
}
catch(PDOException $e)
{
echo "Houve um erro ao selecionar o fornecedor";
echo "<br>";
echo $e->getMessage();
return false;
}
}
}
Classe Fornecedor Class
<?php
class Fornecedor
{
public function listar()
{
//Carrega o conteúdo do arquivo clientes.html
$htmlFornecedor = file_get_contents("view/html/fornecedor.html");
$registros = "";
$nrRegistros = "0";
//Instancia a classe ClienteModel e executa o método consultar()
$fornecedorModel = new FornecedorModel();
$arrayDados = $fornecedorModel->consultar();
//Verifica se o método consultar() retornou um Array
if(is_array($arrayDados))
{
//Percorre todos os elementos do Array/Matriz
foreach($arrayDados as $registro)
{
$registros .= "<tr>";
$registros .= "<td>" . $registro["id_fornecedor"] . "</td>";
$registros .= "<td>" . $registro["tipo"] . "</td>";
$registros .= "<td>" . $registro["nome_fornecedor"] . "</td>";
$registros .= "<td>" . $registro["nome_fantasia"] . "</td>";
$registros .= "<td>" . $registro["cpf"] . "</td>";
$registros .= "<td>" . $registro["cnpj"] . "</td>";
$registros .= "<td>" . $registro["endereco"] . "</td>";
$registros .= "<td>" . $registro["bairro"] . "</td>";
$registros .= "<td>" . $registro["cep"] . "</td>";
$registros .= "<td>" . $registro["cidade"] . "</td>";
$registros .= "<td>" . $registro["estado"] . "</td>";
$registros .= "<td>" . $registro["telefone"] . "</td>";
$registros .= "<td>" . $registro["celular"] . "</td>";
$registros .= "<td>" . $registro["fax"] . "</td>";
$registros .= "<td>" . $registro["email"] . "</td>";
$registros .= "<td>" . $registro["site"] . "</td>";
$registros .= "<td>" . $registro["data_cadastro"] . "</td>";
$registros .= "<td>";
$registros .= '<a class="btn btn-danger btn-xs" href="index.php?modulo=Fornecedor&acao=excluir&chave='.$registro["id_fornecedor"].'"><span class="glyphicon glyphicon-remove"></span></a> ';
$registros .= '<a class="btn btn-info btn-xs" href="index.php?modulo=Fornecedor&acao=editar&chave='.$registro["id_fornecedor"].'"><span class="glyphicon glyphicon-pencil"></span></a>';
$registros .= "</td>";
$registros .= "</tr>";
$nrRegistros++;
}
}
//Substitui o 'marcador' #REGISTROS# do arquivo clientes.html pelo conteúdo da variável $registros
$html = str_replace("#REGISTROS#", $registros, $htmlFornecedor);
$html = str_replace("#NRREGISTROS#", $nrRegistros, $html);
return $html;
}
private function form()
{
//Carrega o arquivo cliente-form.html
$htmlFormulario = file_get_contents("view/html/fornecedor-form.html");
//Instancia a classe ClienteModel
$fornecedorModel = new FornecedorModel();
//Verifica se foi passado na URL o parâmetro chave que irá conter o ID do cliente
if(isset($_GET["chave"]))
{
//Se o parâmetro chave foi passado na URL então chama o método selecionar() da classe ClienteModel,
//passando o ID do usuário como parâmetro
$fornecedorModel->selecionar($_GET["chave"]);
}
//Substitui os marcadores do atributo VALUE no arquivo cliente-form.html
$htmlFormulario = str_replace("#ID#", $fornecedorModel->getId(), $htmlFormulario);
$htmlFormulario = str_replace("#TIPO#", $fornecedorModel->getTipo(), $htmlFormulario);
$htmlFormulario = str_replace("#NOME_FORNECEDOR#", $fornecedorModel->getNome_Fornecedor(), $htmlFormulario);
$htmlFormulario = str_replace("#NOME_FANTASIA#", $fornecedorModel->getNome_Fantasia(), $htmlFormulario);
$htmlFormulario = str_replace("#CPF#", $fornecedorModel->getCpf(), $htmlFormulario);
$htmlFormulario = str_replace("#CNPJ#", $fornecedorModel->getCnpj(), $htmlFormulario);
$htmlFormulario = str_replace("#ENDERECO#", $fornecedorModel->getEndereco(), $htmlFormulario);
$htmlFormulario = str_replace("#BAIRRO#", $fornecedorModel->getBairro(), $htmlFormulario);
$htmlFormulario = str_replace("#CEP#", $fornecedorModel->getCep(), $htmlFormulario);
$htmlFormulario = str_replace("#CIDADE#", $fornecedorModel->getCidade(), $htmlFormulario);
$htmlFormulario = str_replace("#ESTADO#", $fornecedorModel->getEstado(), $htmlFormulario);
$htmlFormulario = str_replace("#TELEFONE#", $fornecedorModel->getTelefone(), $htmlFormulario);
$htmlFormulario = str_replace("#CELULAR#", $fornecedorModel->getCelular(), $htmlFormulario);
$htmlFormulario = str_replace("#FAX#", $fornecedorModel->getFax(), $htmlFormulario);
$htmlFormulario = str_replace("#EMAIL#", $fornecedorModel->getEmail(), $htmlFormulario);
$htmlFormulario = str_replace("#SITE#", $fornecedorModel->getSite(), $htmlFormulario);
$htmlFormulario = str_replace("#DATA_CADASTRO#", $fornecedorModel->getData_Cadastro(), $htmlFormulario);
return $htmlFormulario;
}
public function novo()
{
return $this->form();
}
public function editar()
{
return $this->form();
}
public function salvar()
{
//verifica se houve o POST
if(isset($_POST["nome_fornecedor"]))
{
//Instancia a classe FornecedorModel e passa os dados vindos do formulário
$fornecedorModel = new FornecedorModel();
$fornecedorModel->setId($_POST["id"]);
$fornecedorModel->setTipo($_POST["tipo"]);
$fornecedorModel->setNome_Fantasia($_POST["nome_fantasia"]);
$fornecedorModel->setNome_Fornecedor($_POST["nome_fornecedor"]);
$fornecedorModel->setCpf($_POST["cpf"]);
$fornecedorModel->setCnpj($_POST["cnpj"]);
$fornecedorModel->setEndereco($_POST["endereco"]);
$fornecedorModel->setBairro($_POST["bairro"]);
$fornecedorModel->setCep($_POST["cep"]);
$fornecedorModel->setCidade($_POST["cidade"]);
$fornecedorModel->setEstado($_POST["estado"]);
$fornecedorModel->setTelefone($_POST["telefone"]);
$fornecedorModel->setCelular($_POST["celular"]);
$fornecedorModel->setFax($_POST["fax"]);
$fornecedorModel->setEmail($_POST["Email"]);
$fornecedorModel->setSite($_POST["site"]);
$fornecedorModel->setData_Cadastro($_POST["Data_Cadastro"]);
//Chama o método gravar() da classe FornecedorModel
$fornecedorModel->gravar();
//Exibe a lista de Fornecedores Cadastrados
return $this->listar();
}
}
public function excluir()
{
if(isset($_GET["chave"]))
{
$fornecedorModel = new FornecedorModel();
$fornecedorModel->deletar($_GET["chave"]);
return $this->listar();
}
}
}
Alguem consegue encontrar o erro de pq nao cadastrar no banco. Posso fazer upload do projeto inteiro se ajudar.