Hoje veremos como criar uma busca por categorias pelo nome utilizando PHP, o banco de dados MySQL, a extensão Mysqli e um menu do tipo "select"(ou "drop-down").
O primeiro passo é criar uma tabela no banco de dados; vou
criar uma de artigos:
CREATE TABLE `artigos` (
`id` INT(10)
NOT NULL AUTO_INCREMENT,
`categoria`
VARCHAR(50) NULL DEFAULT NULL,
`titulo`
VARCHAR(50) NULL DEFAULT NULL,
PRIMARY KEY
(`id`)
);
Insira alguns registros para teste:
ATENÇÃO: Neste tutorial, estamos usando a mesma tabela para
guardar os nomes das categorias e das matérias. Porém, o padrão é utilizar
categorias e matérias em tabelas
separadas. Caso vc já tenha uma tabela apenas de categorias e outra de
artigos e queira relacioná-las (interligá-las), então veja esse post:
Agora crie uma nova página em PHP; use o código a seguir
(obs: corrija a conexão com os seus
dados):
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type"
content="text/html>
<title>Pesquisa
por categorias com PHP</title>
</head>
<body>
<form name="form1"
method="post" action="">
<label>
<select
class="form-control" id="" size="1"
name="categoria">
<option>Escolha a
categoria</option>
<option
value="Programação">Programação</option>
<option value="Banco de
dados">Banco de dados</option>
<option value="sistemas
operacionais">sistemas operacionais</option>
<option
value="Outros">Outros</option>
</select>
</label>
<label>
<input
type="submit" name="pesquisar"
value="pesquisar">
</label>
</form>
<br>
<?php
$ConDB = new
mysqli('localhost', 'root', 'senha', 'banco') or die(mysqli_error());
// ou $ConDB = mysqli_connect('localhost', 'root', 'senha',
'banco') or die(mysqli_error());
if(isset($_POST['pesquisar'])){
$categoria=$_POST['categoria'];
$sql =
"select * from artigos WHERE categoria='$categoria'";
$resultado =
mysqli_query($ConDB, $sql) or exit(mysqli_error($ConDB));
if
(mysqli_num_rows($resultado) > 0) {
echo "titulos encontrados: <br>";
while ($row =
mysqli_fetch_array($resultado)) {
?>
<a href="#"><?php echo
$row['titulo']; ?></a><br>
<?php
}//End while
}//End if
else
{
echo "nao encontrados titulos";
}
}
?>
</body>
</html>
Teste sua página; a busca já deverá estar funcionando
corretamente. Agora é só corrigir os “links” para que conduzam às íntegras das
matérias. Para isso, confira aqui:
Busca Simples Com PHP, PDO e Mysql Utilizando “links”
ou aqui:
Página de detalhes utilizando “links” com PHP e MySQLi
ou aqui:
Página de detalhes utilizando “links” com PHP e MySQLi