MVC Completo - #17 Model III (Pesquisa)
25/04/2018Nessa aula continuamos com nosso model, entretanto trabalharemos com a parte de pesquisa e seleção no MVC.
Criando Pesquisa e Seleção no MVC
Para realizar a pesquisa e seleção vamos utilizar o mesmo ControllerCadastro e ClassCadastro da última aula, entretanto implementando os métodos selecionaClientes() e seleciona(). Vamos criar também um formulário especÃfico para essa consulta.
Formulário de Pesquisa no MVC / PHP
Vamos iniciar implementando nosso formulário de pesquisa, que é bem semelhante ao do executado na última aula.
<h1>SELEÃ?Ã?O DE DADOS</h1>
<form name="FormSelect" id="FormSelect" action="<?php echo DIRPAGE.'cadastro/seleciona'; ?>" method="post">
Nome: <input type="text" name="Nome" id="Nome"><br>
Sexo:
<select name="Sexo" id="Sexo">
<option value="">Selecione</option>
<option value="Masculino">Masculino</option>
<option value="Feminino">Feminino</option>
</select><br>
Cidade: <input type="text" name="Cidade" id="Cidade"><br>
<input type="submit" value="Pesquisar">
</form>
Acesso ao Banco de Dados - Model MVC
Para acessar o banco de dados somente nossa ClassCadastro pode fazer, conforme especificações do MVC. Segue abaixo o código:
#Acesso ao banco de dados com seleção
protected function selecionaClientes($Nome , $Sexo , $Cidade)
{
$Nome='%'.$Nome.'%';
$Sexo='%'.$Sexo.'%';
$Cidade='%'.$Cidade.'%';
$BFetch=$this->Db=$this->conexaoDB()->prepare("select * from teste where Nome like :nome and Sexo like :sexo and Cidade like :cidade");
$BFetch->bindParam(":nome",$Nome,\PDO::PARAM_STR);
$BFetch->bindParam(":sexo",$Sexo,\PDO::PARAM_STR);
$BFetch->bindParam(":cidade",$Cidade,\PDO::PARAM_STR);
$BFetch->execute();
$I=0;
while($Fetch=$BFetch->fetch(\PDO::FETCH_ASSOC)){
$Array[$I]=['Nome'=>$Fetch['Nome'],'Sexo'=>$Fetch['Sexo'],'Cidade'=>$Fetch['Cidade']];
$I++;
}
return $Array;
}
O código acima compilará todos os resultados em um Array que será retornado.
Controller de busca no MVC
Nosso controller de busca pegará o retorno do banco de dados e enviará o resultado para nossa view.
#Selecionar e exibir os dados do banco de dados
public function seleciona()
{
$this->recVariaveis();
$B=$this->selecionaClientes($this->Nome, $this->Sexo,$this->Cidade);
echo "
<table border='1'>
<tr>
<td>Nome</td>
<td>Sexo</td>
<td>Cidade</td>
</tr>
";
foreach($B as $C){
echo "
<tr>
<td>$C[Nome]</td>
<td>$C[Sexo]</td>
<td>$C[Cidade]</td>
</tr>
";
}
echo "
</table>
";
}