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

cadastro de cliente


junaooaks

Pergunta

pessoal sou iniciante em php oop já li um monte de artigo estou partindo para a pratica

estou criando uma class para cadastro de cliente usando os métodos get e set para entrada e saida

criei as class CONEXÃO, CLIENTE, FORMULÁRIO, clienteSql

so que não sei como juntar as class de forma que quando digitado no formulário cadastrasse no banco de dados

bom vamos ao codigo:

class de conexao com o banco de dados

<?PHP

class Conexao {

private $con = NULL;

/*SE QUISERMOS UTILIZAR OUTRO BANCO DE DADOS DEVEMOS APENAS MUDAR ESTE ATRIBUTO*/

private $dbType = "mysql";

private $host = "localhost";

private $user = "teste";

private $pass = "teste";

private $db = "teste";

private $persistencia = false;

private $x;

/*PODE SER TROCADO POR __construct do PHP5 sem problemas*/

public function __construct($persistencia = false){

if($persistencia != false) { $this->persistencia = true; }

$this->x="asfd";

}

public function getConnection(){

try{

$this->con = new PDO($this->dbType.":host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);

/*

ESTA PROPRIEDADE INDICA COMO O PDO VAI RETORNAR OS

ERROS SQL NO MODO PDO::ERRMODE_WARNING O RETORNO DO

ERRO É IGUAL AO QUE VEMOS SEM A UTILIZAÇÃO DO PDO

*/

$this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

return $this->con;

}catch(PDOException $ex){

echo "ERRO:".$ex->getMessage();

}

}

public function Close(){

if($this->con != NULL){

$this->con = NULL;

}

}

}

?>

//class com os metodos get e set

class cliente {

private $id_cliente;

private $nome;

private $endereco;

private $bairro;

private $cidade;

private $cep;

private $cpfCnpj;

private $telefone;

private $celular;

private $email;

private $estado;

public function setIdCliente($id_cliente) {

$this->id_cliente = $id_cliente;

}

public function getIdCliente() {

return $this->id_cliente;

}

public function setNome($nome){

$this->nome = $nome;

}

public function getNome(){

return $this->nome;

}

public function setEndereco ($endereco){

$this->endereco = $endereco;

}

public function getEndereco (){

return $this->endereco;

}

public function setBairro ($bairro){

$this->bairro = $bairro;

}

public function getBairro (){

return $this->bairro;

}

public function setCidade($cidade){

$this->cidade = $cidade;

}

public function getCidade(){

return $this->cidade;

}

public function setCep($cep){

$this->cep = $cep;

}

public function getCep(){

return $this->cep;

}

public function setCpfCnpj($cpfCnpj){

$this->cpfCnpj = $cpfCnpj;

}

public function getCpfCnpj(){

return $this->cpfCnpj;

}

public function setTelefone ($telefone) {

$this->telefone = $telefone;

}

public function getTelefone(){

return $this->telefone;

}

public function setCelular($celular){

$this->celular = $celular;

}

public function getCelular(){

return $this->celular;

}

public function setEmail($email){

$this->email = $email;

}

public function getEmail(){

return $this->email = $email;

}

public function setEstado($estado){

$this->estado = $estado;

}

public function getEstado(){

return $this->estado = $estado;

}

}

?>

//formulario html

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>SISGEW Mikrotik</title>

<style type="text/css"> @import url("../../css/form.css"); </style>

<?php

//includes

include ("../../mysql/conexao.php");

include ("../../bean/cliente.php");

?>

</head>

<body>

<form id="form1" name="form1" method="post" action="">

<table border="0" cellspacing="0" cellpadding="1">

<tr>

<td><input name="novo" type="image" id="novo" src="../../botao/novo.gif"/></td>

<td><input name="alterar" type="image" id="alterar" src="../../botao/alterar.gif"/></td>

<td><input name="deletar" type="image" id="deletar" src="../../botao/delete.gif"/></td>

<td><input name="busca" type="image" id="busca" src="../../botao/buscar.gif"/></td>

<td><input name="fechar" type="image" id="fechar" onclick="window.close()" src="../../botao/fechar.gif"/></td>

</tr>

<tr>

<td> </td>

<td> </td>

<td> </td>

<td> </td>

<td> </td>

</tr>

</table>

<table border="0" align="center" cellpadding="5" cellspacing="0">

<tr>

<td width="55">Nome:</td>

<td><input name="nome" type="text" id="nome" size="80" /></td>

</tr>

<tr>

<td>Endereço:</td>

<td><input name="endereco" type="text" id="textfield2" size="80" /></td>

</tr>

<tr>

<td>Email:</td>

<td><input name="email" type="text" id="email" size="80" /></td>

</tr>

<tr>

<td>Bairro:</td>

<td><input type="text" name="bairro" id="textfield3" /></td>

</tr>

<tr>

<td>Cidade:</td>

<td><input type="text" name="cidade" id="textfield4" /></td>

</tr>

<tr>

<td>Cep:</td>

<td><input type="text" name="cep" id="textfield5" /></td>

</tr>

<tr>

<td>estado:</td>

<td><label for="estado"></label>

<select name="estado" id="estado">

<option value="AC">AC</option>

<option value="AL">AL</option>

<option value="AP">AP</option>

<option value="AM">AM</option>

<option value="BA">BA</option>

<option value="CE">CE</option>

<option value="DF">DF</option>

<option value="ES">ES</option>

<option value="GO">GO</option>

<option value="MA">MA</option>

<option value="MT">MT</option>

<option value="MS">MS</option>

<option value="MG">MG</option>

<option value="PA">PA</option>

<option value="PB">PB</option>

<option value="PR">PR</option>

<option value="PE">PE</option>

<option value="PI">PI</option>

<option value="RJ">RJ</option>

<option value="RN">RN</option>

<option value="RS">RS</option>

<option value="RO">RO</option>

<option value="RR">RR</option>

<option value="SC">SC</option>

<option value="SP">SP</option>

<option value="SE">SE</option>

<option value="TO">TO</option>

</select></td>

</tr>

<tr>

<td>Telefone:</td>

<td><input type="text" name="telefone" id="textfield7" /></td>

</tr>

<tr>

<td>Celular:</td>

<td><input type="text" name="celular" id="textfield8" /></td>

</tr>

<tr>

<td>Cpf/Cnpj:</td>

<td><input type="text" name="cpfcnpj" id="textfield9" /></td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="button" id="button" value="Cadastrar" /></td>

</tr>

<tr>

<td> </td>

<td> </td>

</tr>

</table>

</form>

</body>

</html>

//class de insert

class clienteSql extends Conexao {

public $con;

public function __construct() {

$this->con = Conexao::getConnection();

}

//funcao para fazer select na tabela

public function Insert($cliente) {

$query = "INSERT INTO clientes (NomeCliente, Email, Numero, Cgc, Cpf, Endereco, Bairro, Cidade, Estado, Cep, Telefone1, Celular )

VALUES (:nome, :email, :numero, :cnpj, :cpf, :endereco, :bairro, :cidade, :estado, :cep, :telefone, :celular)";

try {

$stmt = $this->con->prepare($query);

$stmt->bindValue(':nome', $cliente->getNome());

$stmt->bindValue(':email', $cliente->getEmail());

$stmt->bindValue(':numero', $cliente->getNumero());

$stmt->bindValue(':cnpj', $cliente->getCnpj());

$stmt->bindValue(':cpf', $cliente->getCpf());

$stmt->bindValue(':endereco', $cliente->getEndereco());

$stmt->bindValue(':bairro', $cliente->getBairro());

$stmt->bindValue(':cidade', $cliente->getCidade());

$stmt->bindValue(':estado', $cliente->getEstado());

$stmt->bindValue(':cep', $cliente->getCep());

$stmt->bindValue(':telefone', $cliente->getTelefone());

$stmt->bindValue(':celular', $cliente->getCelular());

return $stmt->execute();

} catch (PDOException $ex) {

echo $ex->getMessage();

}

}

public function Update($cliente) {

$query = "UPDATE clientes SET NomeCliente=:nome, email=:email,

telefone=:telefone where id_cliente=:id_cliente";

try {

$stmt = $this->con->prepare($query);

$stmt->bindValue(':nome', $user->getNome());

$stmt->bindValue(':email', $user->getEmail());

$stmt->bindValue(':telefone', $user->getTelefone());

$stmt->bindValue(':id_cliente', $user->getIdCliente());

$stmt->execute();

} catch (PDOException $ex) {

echo $ex->getMessage();

}

}

}

?>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

na class do INSERT esta dando um erro

ERRO:could not find driver
Fatal error: Call to a member function prepare() on a non-object in /var/www/sisgew/mysql/clienteSql.php on line 32

e estas linhas

$stmt = $this->con->prepare("INSERT INTO clientes (NomeCliente, Email, Numero, Cgc, Cpf, Endereco, Bairro, Cidade, Estado, Cep, Telefone1, Celular )

VALUES (:nome, :email, :numero, :cnpj, :cpf, :endereco, :bairro, :cidade, :estado, :cep, :telefone, :celular)");

pessoal preciso de ajuda

lembrando que configurei no arquivo do php.ini a saida para PDO

Link para o comentário
Compartilhar em outros sites

  • 0
na class do INSERT esta dando um erro

ERRO:could not find driver
Fatal error: Call to a member function prepare() on a non-object in /var/www/sisgew/mysql/clienteSql.php on line 32
e estas linhas
$stmt = $this->con->prepare("INSERT INTO clientes (NomeCliente, Email, Numero, Cgc, Cpf, Endereco, Bairro, Cidade, Estado, Cep, Telefone1, Celular ) VALUES (:nome, :email, :numero, :cnpj, :cpf, :endereco, :bairro, :cidade, :estado, :cep, :telefone, :celular)");
pessoal preciso de ajuda lembrando que configurei no arquivo do php.ini a saida para PDO
amigo, teu código esta limpo, ótimo, parabens... mas tente usar a seguinte sintaxe nessa linha ai:
$stmt = $this->con->prepare('INSERT INTO clientes (NomeCliente, Email, Numero, Cgc, Cpf, Endereco, Bairro, Cidade, Estado, Cep, Telefone1, Celular )
VALUES (:nome, :email, :numero, :cnpj, :cpf, :endereco, :bairro, :cidade, :estado, :cep, :telefone, :celular)');

não sei se vai mudar, mas de acordo com esse manual aqui:http://pear.php.net/manual/en/package.database.db.intro-execute.php

usaria a sintaxe com apertura de aspa simples.

abraço

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...