Simples código fonte para busca com filtros no PHP

Modelo básico para iniciar o desenvolvimento de um sistema de busca com filtros no .

Busca com filtros no PHP

Sistema de busca com filtros no PHP

Este é um exemplo básico de código para você iniciar o desenvolvimento de um sistema de busca com filtros no PHP.

Com varias dicas de funções para que você crie um código seguro, objetivo deste conteúdo é acadêmico.

Recebendo os dados via GET

Por que GET? $_GET é um array associativo de variáveis passadas para o script atual via o método HTTP GET.

Exemplo: https://rogertakemiya.com.br?nome=Roger

  • Variável: nome
  • Valor: Roger
  • Código php para exibir o valor: echo $_GET[‘nome']

Já para tratar os valores enviados pelos campos utilizamos a função addslashes().

addslashes: Retorna uma string com barras invertidas antes de caracteres que precisam ser tratados para serem colocados em um query no , etc. Estes caracteres são aspas simples (‘), aspas duplas (“), barra invertida (\) e NUL.

Vamos ao código, na primeira parte recebemos os valores via GET e criamos as validações necessárias


Para validar se os valores foram informados e enviados, utilizo a função is_null(), que verifica se uma variável é NULL “não foi definida”.

Em situações similares você também pode estar utilizando as funções empty() ou isset() para verificar o preenchimento dos valores.

empty: determina se uma variável é considerada vazia. Uma variável é considerada vazia se não existir ou seu valor é igual FALSE. A função empty() não gera um aviso se a variável não existir.

isset: irá verificar se a variável informada foi definida, possuí um valor, mesmo que vazio e irá retornar TRUE se sim ou FALSE caso contrário.

Banco de dados

Para conectar ao banco de dados utilizamos a extensão PDO, segue o exemplo:

$user = "usuario";
$pass = "senha";

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

PDO: A extensão PDO (PHP Data Objects) define uma interface leve e consistente para acessar diversos tipos de bancos de dados no PHP.

Agora preparamos a nossa Query “consulta” ao banco de dados.

Atenção: Repare na utilização do bindParam() para evitar ataques de SQL Injection.

$sql = $pdo->prepare("SELECT nome, idade, email FROM usuarios WHERE nome = :nome AND idade = :idade AND email = :email");

$sql->bindParam(':nome', $nome, PDO::PARAM_STR);
$sql->bindParam(':idade', $nome, PDO::PARAM_INT);
$sql->bindParam(':email', $email, PDO::PARAM_STR);
$sql->execute();
$linha = $sql->fetch(PDO::FETCH_ASSOC);

print_r($linha);

?>

A utilização da função bindParam é essencial.

bindParam: Vincula uma variável PHP a um correspondente marcador de ponto de interrogação ou nome de pergunta na instrução SQL que foi usada para preparar a declaração (ler mais).

 

 

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *