Ir ao conteúdo
  • Cadastre-se

PHP Criar Sistema de Busca com vários campos


Ir à solução Resolvido por David Martinho,

Posts recomendados

Bom Dia

 

Eu estou criando um site PHP para um projeto onde faço gestão de materiais, e tentei criar um sistema de busca que a sua função seria buscar os dados da BD e mostrar em uma tabela os resultados obtidos.

 

Eu já consegui fazer isso para buscar um campo especifico porém ao tentar fazer um sistema de busca que vá procurar a informação escrita nos vários campos da tabela, não funciona mesmo usando o operador OR.

 

imagem.thumb.png.1836f898113794472fc4ab1db286f078.png

 

Depois deveria surgir a coluna AS11-01-01 ao por ex: "digitar AS11-01-01 na textbox".

 

Mas ao invés disso aparece os dados todos da tabela e não tá executando a filtragem.

 

imagem.thumb.png.f8116d42b3e0fe4ec456090546741ba8.png

 

Código do formulário:

<form class="form" action="resultadosrefAS11.php" method="GET">
		<label class="label">Busca</label>
		<input class="input2" type="text" style="width:300;height:32" name="ref" size="50" placeholder="Insira as informações">
		<button class="button">Procurar</button>
	</form>

 

 

Código que executa a busca:

<?php
if (!isset($_GET['ref'])) {
	header("Location: AS11.php");
	exit;
}

$ref = "%".trim($_GET['ref'])."%";

$dbh = new PDO('mysql:host=127.0.0.1;dbname=moviblock', 'root', '');

$sth = $dbh->prepare('SELECT * FROM `as11` WHERE `Referência` OR `Localização` LIKE :ref ORDER BY Localização ASC');
$sth->bindParam(':ref', $ref, PDO::PARAM_STR);
$sth->execute();

$resultados = $sth->fetchAll(PDO::FETCH_ASSOC);
?>


<?php
if (count($resultados)) {
	foreach($resultados as $Resultado) {
?>
<?php
echo "<tr>\n";
echo "<td>{$Resultado['Localização']}</td>\n";
echo "<td>{$Resultado['Referência']}</td>\n";
echo "<td>{$Resultado['Categoria']}</td>\n";
echo "<td>{$Resultado['Dimensão']}</td>\n";
echo "<td>{$Resultado['Designação']}</td>\n";
echo "<td>{$Resultado['Fornecedor']}</td>\n"; 
echo "<td>{$Resultado['Quantidade']}</td>\n"; 	
echo "<td>{$Resultado['Inventário']}</td>\n"; 
echo "<td>{$Resultado['MTN_ID']}</td>\n";

    }
}
?>

 

Se conseguirem ajudar eu agradecia imenso :)

Link para o comentário
Compartilhar em outros sites

  • Solução

Já consegui, era só acrescentar o LIKE na Referência também: para quem quiser fica a solução caso tenha o mesmo problema

SELECT * FROM `as11` WHERE `Referência` LIKE :ref OR `Localização` LIKE :ref ORDER BY Localização ASC
1 hora atrás, David Martinho disse:

Bom Dia

 

Eu estou criando um site PHP para um projeto onde faço gestão de materiais, e tentei criar um sistema de busca que a sua função seria buscar os dados da BD e mostrar em uma tabela os resultados obtidos.

 

Eu já consegui fazer isso para buscar um campo especifico porém ao tentar fazer um sistema de busca que vá procurar a informação escrita nos vários campos da tabela, não funciona mesmo usando o operador OR.

 

imagem.thumb.png.1836f898113794472fc4ab1db286f078.png

 

Depois deveria surgir a coluna AS11-01-01 ao por ex: "digitar AS11-01-01 na textbox".

 

Mas ao invés disso aparece os dados todos da tabela e não tá executando a filtragem.

 

imagem.thumb.png.f8116d42b3e0fe4ec456090546741ba8.png

 

Código do formulário:

<form class="form" action="resultadosrefAS11.php" method="GET">
		<label class="label">Busca</label>
		<input class="input2" type="text" style="width:300;height:32" name="ref" size="50" placeholder="Insira as informações">
		<button class="button">Procurar</button>
	</form>

 

 

Código que executa a busca:

<?php
if (!isset($_GET['ref'])) {
	header("Location: AS11.php");
	exit;
}

$ref = "%".trim($_GET['ref'])."%";

$dbh = new PDO('mysql:host=127.0.0.1;dbname=moviblock', 'root', '');

$sth = $dbh->prepare('SELECT * FROM `as11` WHERE `Referência` OR `Localização` LIKE :ref ORDER BY Localização ASC');
$sth->bindParam(':ref', $ref, PDO::PARAM_STR);
$sth->execute();

$resultados = $sth->fetchAll(PDO::FETCH_ASSOC);
?>


<?php
if (count($resultados)) {
	foreach($resultados as $Resultado) {
?>
<?php
echo "<tr>\n";
echo "<td>{$Resultado['Localização']}</td>\n";
echo "<td>{$Resultado['Referência']}</td>\n";
echo "<td>{$Resultado['Categoria']}</td>\n";
echo "<td>{$Resultado['Dimensão']}</td>\n";
echo "<td>{$Resultado['Designação']}</td>\n";
echo "<td>{$Resultado['Fornecedor']}</td>\n"; 
echo "<td>{$Resultado['Quantidade']}</td>\n"; 	
echo "<td>{$Resultado['Inventário']}</td>\n"; 
echo "<td>{$Resultado['MTN_ID']}</td>\n";

    }
}
?>

 

Se conseguirem ajudar eu agradecia imenso :)

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!