Jump to content
Fórum Script Brasil
  • 0

Dúvida em cadastro de Funcionario PHP OO


Eder Leidson

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...