Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em cadastro de Funcionario PHP OO


Eder Leidson

Pergunta

Ola pessoal, sou novato no PHP OO...

Estou tentando realizar o cadastro de um Funcionário e não estou conseguindo, segue o codigo dos meus arquivos.

Dentro da pasta Classes estão->

Pessoa.class.php

<?php

class Pessoa{
    private $nome;
    private $cpf;
    private $dtNascimento;
    
    public function setNome($nome){
        $this->nome = $nome;
    }
    public function getNome(){
        return $nome;
    }
    
    public function setCpf($cpf){
        $this->cpf = $cpf;
    }
    public function getCpf(){
        return $cpf;
    }
    
    public function setDtNascimento($dtNascimento){
        $this->dtNascimento = $dtNascimento;
    }
    public function getDtNascimento(){
        return $dtNascimento;
    }
}

?>
Pessoa.class.php
<?php
    require 'Pessoa.class.php';

class Funcionario extends Pessoa{
    private $usuario;
    private $senha;
    
    public function setUsuario($usuario){
        $this->usuario = $usuario;
    }
    public function getUsuario(){
        return $usuario;
    }
    
    public function setSenha($senha){
        $this->senha = $senha;
    }
    public function getSenha(){
        return $senha;
    }
}

?>
Conexao.class.php
<?php
class Conexao{
    
    private $localhost = "localhost:3306";
    private $root = "root";
    private $senha = "paranoia";
    private $banco = "testePHP";
    
    public function conecta() {
        $conexao = mysql_connect($this->localhost, $this->root, $this->senha);
        if (!$conexao){
            echo "Erro ao se conectar ao banco de dados";
        }
        $banco = mysql_select_db($this->banco, $conexao);
        if (!$banco){
            echo "Erro ao selecionar o banco de dados";
        }
    }
    
}
?>
Dentro da pasta Dao estão-> FuncionarioDao.class.php
<?php


class FuncionarioDao{
    
    public function cadastra(Funcionario $funcionario){
        mysql_query("INSERT INTO Pessoa (Nome, CPF, dtNascimento) values ($funcionario->getNome(), $funcionario->getCpf(), $funcionario->getDtNascimento())");
        $idPessoa = mysql_query("SELECT max(idPessoa) FROM Pessoa where Nome= $funcionario->getNome()");
        mysql_query("INSERT INTO Funcionario (idPessoa, usuario, senha) values ($idPessoa, $funcionario->getUsuario(), $funcionario->getSenha()");
    }
}

    

?>
e na raiz do sistema estão-> form_cadastra_funcionario.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<form method="POST" action="funcao_cadastra_funcionario.php">
<table>
    <tbody>
        <tr>
            <td>
                <label>Nome:</label>
                <input type="text" name="nome" id="nome"/>
            </td>
        </tr>
        <tr>
            <td>
                <label>CPF:</label>
                <input type="text" name="cpf" id="cpf"/>
            </td>
        </tr>
        <tr>
            <td>
                <label>dtNascimento:</label>
                <input type="text" name="dtNascimento" id="dtNascimento"/>
            </td>
        </tr>
        <tr>
            <td>
                <label>Usuário:</label>
                <input type="text" name="usuario" id="usuario"/>
            </td>
        </tr>
        <tr>
            <td>
                <label>Senha:</label>
                <input type="password" name="senha" id="senha"/>
            </td>
        </tr>
        <tr>
            <td>
                <label>Re-Senha:</label>
                <input type="password" name="reSenha" id="reSenha"/>
            </td>
        </tr>
        <tr>
            <td>
                <input type="submit" value="Salvar"/>
            </td>
        </tr>
    </tbody>
</table>
</form>

</body>
</html>
funcao_cadastra_funcionario.php
<?php
require 'Classes/Funcionario.class.php';
require 'Daos/FuncionarioDao.class.php';
require 'Classes/conexao.class.php';

    $conexao = new Conexao();
    $conexao->conecta();

    $nome = $_POST['nome'];
    $cpf = $_POST['cpf'];
    $dtNascimento = $_POST['dtNascimento'];
    $usuario = $_POST['usuario'];
    $senha = $_POST['senha'];
    $reSenha = $_POST['reSenha'];

    if($senha != $reSenha){
        echo "As senhas digitadas são diferentes, volte e corrija";
    }else{
        echo "Iniciando...";
        $funcionario = new Funcionario();
        echo "1";
        $funcionario->setNome($nome);
        echo "2";
        $funcionario->setCpf($cpf);
        echo "3";
        $funcionario->setDtNascimento($dtNascimento);
        echo "4";
        $funcionario->setUsuario($usuario);
        echo "5";
        $funcionario->setSenha($senha);
        echo "6";
        
        $funcDao = new FuncionarioDao();
        echo "7";
        $funcDao->cadastra($funcionario);
        echo "8";
        
    }
?>

Se alguém puder me dar uma luz, o sistema esta executando todos os echo acima, mas não cadastra no banco...

Obrigado..

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
$conexao = mysql_connect('$this->localhost', '$this->root', '$this->senha');

$banco = mysql_select_db('$this->banco', $conexao);

Coloca os acentos (') ou (") onde está marcado acima e testa lá novamente.

DETALHE: SÓ onde está em vermelho.

Abraço.

Bom, a conexão não esta falhando não.

vai ai outro exemplo mais simples que estou tentando fazer... Cadastro de Cliente

funcao_cadastra_cliente.php

<?php
require 'Classes/conexao.class.php';
require 'Daos/ClienteDao.class.php';
require 'Classes/Cliente.class.php';

    $conexao = new Conexao();
    $conexao->conecta();
        
    $cliente = new Cliente();
    $clienDao = new ClienteDao();
    $cliente->setNome($_POST['nome']);
    $cliente->setCpf($_POST['cpf']);
    $cliente->setDtNascimento($_POST['dtNascimento']);
    
    $clienDao->cadastra($cliente);
?>
ClienteDao.class.php
<?php


class ClienteDao{
    
    public function cadastra(Cliente $cliente){
    
    echo "Operação realizada com sucesso".$cliente->getNome();
    }
}

?>

Bom estou fazendo esse echo ai no ClienteDao so pra ver se esta enviando os dados no cadastra e sempre aparece apenas a mensagem Operação realizada com sucesso, e o valor de $cliente->getNome(); não está sendo imprimido..

alguém pode me dizer o que ta errado???

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...