Classe Crud com PDO e MYSQLi - #9
16/05/2018Fala pessoal, nessa vídeo-aula iremos realizar a edição dos dados utilizando nossa ClassCrud. Reaproveitaremos o código de recebimento das variáveis e do nosso formulário de cadastro.
Reutilizando formulário de cadastro
Reaproveitaremos nosso formulário de cadastro fazendo um if determinando variáveis que exibirão dados de acordo com a requisição do usuário (cadastro ou edição).
PDO
<?php
include("Class/ClassCrud.php");
/* Edição de dados */
if(isset($_GET['id'])){
$Acao="Editar";
$Crud=new ClassCrud();
$BFetch=$Crud->selectDB("*","cadastro","where Id=?",array($_GET['id']));
$Fetch=$BFetch->fetch(PDO::FETCH_ASSOC);
$Id=$Fetch['Id'];
$Nome=$Fetch['Nome'];
$Sexo=$Fetch['Sexo'];
$Cidade=$Fetch['Cidade'];
}
/* Cadastro novo */
else{
$Acao="Cadastrar";
$Id=0;
$Nome="";
$Sexo="";
$Cidade="";
}
?>
<div class="Resultado"></div>
<div class="Formulario">
<h1 class="Center">Cadastro</h1>
<form name="FormCadastro" id="FormCadastro" method="post" action="Controllers/ControllerCadastro.php">
<input type="hidden" id="Acao" name="Acao" value="<?php echo $Acao; ?>">
<input type="hidden" id="Id" name="Id" value="<?php echo $Id; ?>">
<div class="FormularioInput">
Nome: <br>
<input type="text" id="Nome" name="Nome" value="<?php echo $Nome; ?>">
</div>
<div class="FormularioInput">
Sexo: <br>
<select name="Sexo" id="Sexo">
<option value="<?php echo $Sexo; ?>"><?php echo $Sexo; ?></option>
<option value="Masculino">Masculino</option>
<option value="Feminino">Feminino</option>
</select>
</div>
<div class="FormularioInput">
Cidade: <br>
<input type="text" id="Cidade" name="Cidade" value="<?php echo $Cidade; ?>">
</div>
<div class="FormularioInput FormularioInput100 Center">
<input type="submit" value="<?php echo $Acao; ?>">
</div>
</form>
</div>
MYSQLi
<?php
include("Class/ClassCrud.php");
/* Edição de dados */
if(isset($_GET['id'])){
$Acao="Editar";
$Crud=new ClassCrud();
$BFetch=$Crud->selectDB("*","cadastro","where Id=?","i",array($_GET['id']));
$Fetch=$BFetch->fetch_all();
foreach($Fetch as $Fetchs){
$Id=$Fetchs[0];
$Nome=$Fetchs[1];
$Sexo=$Fetchs[2];
$Cidade=$Fetchs[3];
}
}
/* Cadastro novo */
else{
$Acao="Cadastrar";
$Id=0;
$Nome="";
$Sexo="";
$Cidade="";
}
?>
<div class="Resultado"></div>
<div class="Formulario">
<h1 class="Center">Cadastro</h1>
<form name="FormCadastro" id="FormCadastro" method="post" action="Controllers/ControllerCadastro.php">
<input type="hidden" id="Acao" name="Acao" value="<?php echo $Acao; ?>">
<input type="hidden" id="Id" name="Id" value="<?php echo $Id; ?>">
<div class="FormularioInput">
Nome: <br>
<input type="text" id="Nome" name="Nome" value="<?php echo $Nome; ?>">
</div>
<div class="FormularioInput">
Sexo: <br>
<select name="Sexo" id="Sexo">
<option value="<?php echo $Sexo; ?>"><?php echo $Sexo; ?></option>
<option value="Masculino">Masculino</option>
<option value="Feminino">Feminino</option>
</select>
</div>
<div class="FormularioInput">
Cidade: <br>
<input type="text" id="Cidade" name="Cidade" value="<?php echo $Cidade; ?>">
</div>
<div class="FormularioInput FormularioInput100 Center">
<input type="submit" value="<?php echo $Acao; ?>">
</div>
</form>
</div>
Reaproveitaremos nosso código de variáveis também, adicionando a variável Acao:
if(isset($_POST['Acao'])){ $Acao=filter_input(INPUT_POST,'Acao',FILTER_SANITIZE_SPECIAL_CHARS); }elseif(isset($_GET['Acao'])){ $Acao=filter_input(INPUT_GET,'Acao',FILTER_SANITIZE_SPECIAL_CHARS); }else{ $Acao=""; }
if(isset($_POST['Id'])){ $Id=filter_input(INPUT_POST,'Id',FILTER_SANITIZE_SPECIAL_CHARS); }elseif(isset($_GET['Id'])){ $Id=filter_input(INPUT_GET,'Id',FILTER_SANITIZE_SPECIAL_CHARS); }else{ $Id=0; }
if(isset($_POST['Nome'])){ $Nome=filter_input(INPUT_POST,'Nome',FILTER_SANITIZE_SPECIAL_CHARS); }elseif(isset($_GET['Nome'])){ $Nome=filter_input(INPUT_GET,'Nome',FILTER_SANITIZE_SPECIAL_CHARS); }else{ $Nome=""; }
if(isset($_POST['Sexo'])){ $Sexo=filter_input(INPUT_POST,'Sexo',FILTER_SANITIZE_SPECIAL_CHARS); }elseif(isset($_GET['Sexo'])){ $Sexo=filter_input(INPUT_GET,'Sexo',FILTER_SANITIZE_SPECIAL_CHARS); }else{ $Sexo=""; }
if(isset($_POST['Cidade'])){ $Cidade=filter_input(INPUT_POST,'Cidade',FILTER_SANITIZE_SPECIAL_CHARS); }elseif(isset($_GET['Cidade'])){ $Cidade=filter_input(INPUT_GET,'Cidade',FILTER_SANITIZE_SPECIAL_CHARS); }else{ $Cidade=""; }
Posteriormente alteraremos nossa classe crud implementando o método updateDB().
PDO
#Atualização no banco de dados
public function updateDB($Tabela , $Set , $Condicao , $Parametros)
{
$this->preparedStatements("update {$Tabela} set {$Set} where {$Condicao}",$Parametros);
return $this->Crud;
}
MYSQLi
#Método para atualizar DB
public function updateDB($Tabela , $Set , $Condicao , $Tipos , $Parametros)
{
$this->preparedStatements("update {$Tabela} set {$Set} where {$Condicao}", $Tipos, $Parametros);
return $this->Crud;
}
Por fim alteraremos nosso ControllerCadastro.php pegando a ação e enviando para o cadastro ou edição:
PDO
include("../Includes/Variaveis.php");
include("../Class/ClassCrud.php");
$Crud=new ClassCrud();
if($Acao=='Cadastrar'){
$Crud->insertDB(
"cadastro",
"?,?,?,?",
array(
$Id,
$Nome,
$Sexo,
$Cidade
)
);
echo "Cadastro Realizado com Sucesso!";
}else{
$Crud->updateDB(
"cadastro",
"Nome=?,Sexo=?,Cidade=?",
"Id=?",
array(
$Nome,
$Sexo,
$Cidade,
$Id
)
);
echo "Cadastro Editado com Sucesso!";
}
MYSQLi
include("../Includes/Variaveis.php");
include("../Class/ClassCrud.php");
$Crud=new ClassCrud();
if($Acao=='Cadastrar'){
$Crud->insertDB(
"cadastro",
"?,?,?,?",
"isss",
array(
$Id,
$Nome,
$Sexo,
$Cidade
)
);
echo "Cadastro Realizado com Sucesso!";
}else{
$Crud->updateDB(
"cadastro",
"Nome=?,Sexo=?,Cidade=?",
"Id=?",
"sssi",
array(
$Nome,
$Sexo,
$Cidade,
$Id
)
);
echo "Cadastro Editado com Sucesso!";
}
Posts Relacionados
Classe Crud com PDO e MYSQLi - #8
No tutorial de hoje vamos continuar a serie CRUD no PDO e CRUD no MYSQLi criando o método de apagar dados no banco.
Classe Crud com PDO e MYSQLi - #10
Com essa vídeo-aula finalizamos essa série especial sobre CRUD utilizando PDO e MYSQLi. Hoje demonstraremos a eficiente reutilização do código usando a classe.