Bóson Treinamentos em Ciência e Tecnologia

Curso de PHP – Como fazer consulta com pesquisa de dados em banco MySQL

Consulta co pesquisa de dados usando PHP e MySQL

Efetuar consulta com pesquisa de dados em banco MySQL

Em nossa aula anterior mostramos como efetuar uma consulta a um banco de dados MySQL por meio de um script PHP, a qual retornava todo o conteúdo de uma das tabelas do banco. Agora, criaremos uma consulta que permitirá pesquisar os dados a serem retornados, aplicando um filtro à consulta.

Nossa pesquisa nos permitirá exibir os cadastros realizados no banco de dados filtrando os registros por sexo – sendo ‘M’ = Masculino, ‘F’ = Feminino, ou ainda ‘N’ = Não Declarado’.

Vamos criar dois arquivos: um para realizar a pesquisa, que chamaremos de pesquisa.html, e outro para processar a pesquisa e exibir seu resultado, de nome pesquisa-resultado.php. Além disso, usaremos um arquivo para conexão ao banco de dados (conectar.php), e uma folha de estilos CSS para controlar a aparência da tabela de dados gerada (estilos.css).

O banco de dados que será consultado recebeu o nome de banco_teste, e consiste em duas tabelas relacionadas, de nomes cadastro e listas.

Criando os arquivos

Primeiramente vamos criar a página de pesquisa (pesquisa.html):

<html>
<head>
<title> Pesquisando Cadastros pelo Sexo </title>
</head>
<body>
<h3>Pesquisa</h3><br>
<form name="Cadastro" action="pesquisa-resultado.php" method="POST">
<label>Selecione o Sexo do Cliente:</label>
<select name="Sexo">
  <option value="M">Masculino</option>
  <option value="F">Feminino</option>
  <option value="N">Não Declarado</option>
</select><br>
<input type="submit" name="enviar" value="Enviar">
</form>
</body>
</html>

Esta página possui um formulário onde  usuário pode selecionar o sexo que deseja consultar, em um menu suspenso, e a consulta é enviada ao script pesquisa-resultado.php para processamento.

Script de processamento

Vamos então criar o script de processamento da pesquisa (pesquisa-resultado.php):

<?php
 // Conectando ao banco de dados:
 include_once("conectar.php");
 
 // Recebendo os dados a pesquisar
 $pesquisa = $_POST['Sexo'];
?>

 <html>
 <head>
 <link href="estilos.css" rel="stylesheet" type="text/css">
 <title>Resultado da pesquisa</title>
 </head>
 <body>
 
 <!-- Criando tabela e cabeçalho de dados: -->
 <table border="1" style='width:50%'>
 <tr>
 <th>NOME</th>
 <th>SOBRENOME</th>
 <th>SEXO</th>
 </tr>
 
 <!-- Preenchendo a tabela com os dados do banco: -->
 <?php
 $sql = "SELECT * FROM cadastro WHERE Sexo = '$pesquisa'";
 $resultado = mysqli_query($strcon,$sql) or die("Erro ao retornar dados");
 
 // Obtendo os dados por meio de um loop while
 while ($registro = mysqli_fetch_array($resultado))
 {
   $nome = $registro['NomeCliente'];
   $sobrenome = $registro['SobrenomeCliente'];
   $sexo = $registro['Sexo'];
   echo "<tr>";
   echo "<td>".$nome."</td>";
   echo "<td>".$sobrenome."</td>";
   echo "<td>".$sexo."</td>";
   echo "</tr>";
 }
 mysqli_close($strcon);
 echo "</table>";
?>
</body>
</html>

O script de processamento recebe os dados a pesquisar oriundos da página pesquisa.html, e realiza a pesquisa solicitada no banco de dados da aplicação. O resultado retornado é então exibido na página em uma tabela, contendo três colunas: nome, sobrenome e sexo.

Arquivo de conexão ao banco de dados (conectar.php):

<?php
 /* Dados do Banco de Dados a conectar */
$Servidor = 'localhost';
$nomeBanco = 'banco_teste';
$Usuario = 'fabio';
$Senha = '123';
$strcon = mysqli_connect($Servidor, $Usuario, $Senha, $nomeBanco); 
?>

Folha de estilos CSS (arquivo estilos.css – opcional):

table, th, td {
 width: 50%;
 border: 1px solid blue;
 border-collapse: collapse;
 padding: 3px;
 background-color: #CC8623;
}

Após criar os arquivos de pesquisa e processamento da pesquisa, vamos criar o banco de dados que será usado nos testes.

O Banco de Dados para testes

A seguir temos o código para criação do banco de dados utilizado em nossos testes, exportado a partir do phpMyAdmin:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
-- Database: `banco_teste`:
CREATE DATABASE IF NOT EXISTS `banco_teste` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `banco_teste`;
-- Estrutura da tabela `cadastro`:
CREATE TABLE IF NOT EXISTS `cadastro` (
 `NomeCliente` varchar(20) DEFAULT NULL,
 `SobrenomeCliente` varchar(30) DEFAULT NULL,
 `Sexo` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- Extraindo dados da tabela `cadastro`:
INSERT INTO `cadastro` (`NomeCliente`, `SobrenomeCliente`, `Sexo`) VALUES
('Fábio', 'dos Reis', 'M'),
('Ana', 'Paulo', 'F'),
('Ana', 'Maria', 'F'),
('Jonas', 'Batista', 'M');
-- Estrutura da tabela `listas`:
CREATE TABLE IF NOT EXISTS `listas` (
 `ID_item` smallint(6) NOT NULL AUTO_INCREMENT,
 `Item` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`ID_item`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=7 ;
-- Extraindo dados da tabela `listas`:
INSERT INTO `listas` (`ID_item`, `Item`) VALUES
(1, 'Laranja'),
(2, 'Banana'),
(3, 'Maçã'),
(4, 'Uva'),
(5, 'Caqui'),
(6, 'Caju');

Testando o script

Vamos efetuar uma consulta aos registros cujo sexo é o feminino:

A tabela a seguir mostra o resultado da pesquisa realizada:

O valor enviado pelo formulário – no caso, a letra ‘F’ – é usado para compor a consulta SQL realizada no banco de dados, e o resultado retornado é usado para preencher a tabela exibida na página.

Próximo: Como inserir dados em um banco de dados MySQL usando um script PHP.

 

Sair da versão mobile