Orientação a objeto [RESOLVIDO]

1. Orientação a objeto [RESOLVIDO]

Cristiano
cpa83

(usa Debian)

Enviado em 29/11/2010 - 20:25h

Olá galera sou novo no php e to aprendendo php orientado a objeto, so que não to encontrando um exemplo de tela de login em php orientado a objeto usando banco mysql, alguém tem um modelo para me passar?


  


2. MELHOR RESPOSTA

Rodrigo Kulb
rodrigokulb

(usa Ubuntu)

Enviado em 29/11/2010 - 23:50h

Ola cpa83 boa noite,

tenho uma vídeo aula no youtube acho que pode te ajudar.

http://www.youtube.com/watch?v=saOfDOzL6Gg

boa sorte... abraços.

3. PDO

Paulo
henbran

(usa Debian)

Enviado em 30/11/2010 - 10:10h

http://php.net/manual/pt_BR/class.pdo.php


arquivo de conexao ao BD
============================================
<?php

class Banco {

public $con;
public $msg;
public $dC;
private $tipo = "mysql";
private $host = "localhost"; // IP do servidor de Banco de Dados
private $bd = "nomeDoBanco";
private $user = "loginDoBanco";
private $pass = "senhaDoBanco";
//========================================================================================
public function conectar() {
$this->tipoBd();
if ($this->con) {
try {
$this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$this->msg = "Erro de conexão com o banco de dados: Código: " . $e->getCode() . "Mensagem " . $e->getMessage() . "hora: " . date('H:i:s');
}
} else {
echo utf8_encode("Erro na definição PDO do banco de dados!");
exit;
}
}
//========================================================================================
private function tipoBd() {

try {
switch ($this->tipo) {
case "mysql":
try {
$this->con = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->bd, $this->user, $this->pass);
} catch (Exception $e) {
$this->msg = "Erro de conexão com o banco de dados MySql. " . $e->getMessage();
}
break;
case "pgsql":
$this->con = new PDO("pgsql:dbname={" . $this->bd . "};user={" . $this->user . "}; password={" . $this->pass . "};host=" . $this->host);
break;
case "oci8":
$tns = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" . $this->host . ")(PORT=1521)))(CONNECT_DATA=(SID=" . $this->bd . ")))";
$this->con = new PDO("oci:dbname=" . $tns, $this->user, $this->pass, array(PDO::ATTR_PERSISTENT => true));
break;
case "mssql":
$this->con = new PDO("mssql:host={" . $this->host . "},1433;dbname={" . $this->bd . "}", $this->user, $this->pass);
break;
}
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
}
}
?>
================================================
classes de comandos SQL (INSERT/DELETE/UPDATE/SELECT) e extração de retornos p/ formato xml
================================================
<?php
//echo "dccsd";exit;
/* DEFINIÇÃO DESTA CLASSE: Receber as strings básicas Sql e executar (select / insert / update / delete)
* setar o resultado das instruções sql executadas no atributo 'retorno' e ...
* de uma classe extendida dessa se pode gerar a string xml e ...
* exibir o xml
*/

require_once("Banco.php");

class cmdSQL {

public $Banco;
public $msg;
public $lastInsertId;
public $retorno;
public $rs;
public $sql;
public $xml;

public function __construct() {

}
//=================================================================================
public function pesquisar() { // inicio do function PESQUISAR
$this->Banco = new Banco();
$this->Banco->conectar();
try {
try // depende do resultado das instruções SQL a seguir
{
$this->rs = $this->Banco->con->prepare($this->sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); // ???????
unset ($this->sql);
$this->rs->execute(); //executa a instrução sql
$this->retorno[n_reg] = $this->rs->rowCount();
$this->retorno[n_cols] = $this->rs->columnCount();
if (($this->retorno[n_reg]) > 0) {
$this->retorno[res] = $this->rs->fetchAll(PDO::FETCH_ASSOC); //Retorna todas as linhas (registros) como um array
} else {
//Mensagem alertando que não econtrou registros
$this->msg = "Registro(s) não encontrado(s).";
}
$this->rs->closeCursor();
} catch (Exception $e) {
$this->msg = "\nErro: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
} catch (Exception $exc) {
$this->msg = $this->msg . " <hr> " . $exc->getMessage();
}
return $this->retorno;
}
//=================================================================================
public function incluir() {
$this->Banco = new Banco();
$this->Banco->conectar();
if (isset($this->Banco->con)) {
try {
$this->rs = $this->Banco->con->prepare($this->sql);
$this->rs->execute();
$this->lastInsertId = $this->Banco->con->lastInsertId();
$this->msg = "Registro salvo com sucesso!";
} catch (Exception $e) {
$this->msg = "Erro de inclusão: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
}
return $this->retorno;
}
//=================================================================================
public function alterar() {
$this->Banco = new Banco();
$this->Banco->conectar();
if (isset($this->Banco->con)) {
try {
$this->rs = $this->Banco->con->prepare($this->sql);
$this->rs->execute();
$this->msg = 'Registro alterado com sucesso!';
} catch (Exception $e) {
$this->msg = "Erro: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
}
return $this->retorno;
}
//=================================================================================
public function excluir() {
$this->Banco = new Banco();
$this->Banco->conectar();
if (isset($this->Banco->con)) {
try {
$this->rs = $this->Banco->con->prepare($this->sql);
$this->rs->execute();
$this->msg = 'Registro alterado com sucesso!';
} catch (Exception $e) {
$this->msg = "Erro: Código: " . $e->getCode() . "Mensagem " . $e->getMessage();
}
}
return $this->retorno;
}
//=================================================================================
public function extraiArrayXml() {
try {
if ($this->retorno[res]) {
foreach ($this->retorno[res] as $lin) {
foreach ($lin as $k => $col) {
$linha .= "<" . $k . ">" . utf8_encode($col) . "</" . $k . ">";
}
}
$this->xml .= "<registros>" . $linha . "</registros>";
}
if ($this->retorno[n_reg])
$this->xml .= "<n_reg>" . $this->retorno[n_reg] . "</n_reg>";
if ($this->retorno[n_cols])
$this->xml .= " <msg> " . $this->retorno[n_cols] . " </msg>";
if ($this->lastInsertId)
$this->xml .= " <lastInsertId> " . $this->lastInsertId . " </lastInsertId>";
if ($this->msg)
$this->xml .= " <msg> " . $this->msg . " </msg>";
} catch (Exception $exc) {
echo "Erro de extração da Array para XML.<hr>" . $exc->getMessage();
}
}
//=================================================================================
public function exibeXml() {
try {
$this->xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><raiz>" . $this->xml . "</raiz>";
header("Content-type: application/xml");
return $this->xml;
} catch (Exception $exc) {
echo '<msg>Erro de montagem XML!!!<msg>' . $exc->getMessage();
}
}
}

?>
================================================


exemplo de classe p/ usar os recursos: Exemplo.php
<?php
require_once("cmdSql.php");

class Exemplo{
public $cmdSql;

public function testeSql(){
$this->cmdSql = new cmdSql();
$this->cmdSql->sql = "SELECT * FROM tabela";
$this->cmdSql->pesquisar();
if($this->cmdSql->retorno[n_reg]>0){
for($x=0;$this->cmdSql->retorno[res][$x];$x++){
echo $this->cmdSql->retorno[res][$x][nome]."<hr>";
}

}

}

}

$Exemplo = new Exemplo();
?>


4. Re: Orientação a objeto [RESOLVIDO]

Cristiano
cpa83

(usa Debian)

Enviado em 30/11/2010 - 19:40h

Vlw galera vou implementar e posto o resultado.


5. Re: Orientação a objeto [RESOLVIDO]

Cristiano
cpa83

(usa Debian)

Enviado em 02/12/2010 - 22:14h

Bah galera infelizmente não consegui implementar 100% essa tela de login, a minha idéia era fazer um sisteminha em php orientado a objeto usando mysql com uma tela de login é que depois o usuário possar listar os itens,excluir,inserir.Mas realmente te complicado.


6. POSTA O TEU SCRIPT AQUI

Paulo
henbran

(usa Debian)

Enviado em 03/12/2010 - 08:01h

Só assim poderemos te orientar a partir de um ponto específico.


7. Re: Orientação a objeto [RESOLVIDO]

Cristiano
cpa83

(usa Debian)

Enviado em 07/12/2010 - 08:19h

Consegui implementar o projeto , obrigado pela ajuda de todos!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts