Hoje vamos continuar a nossa pequena seqüencia de tutoriais ensinando o básico do trabalho com PHP e MySQL.
Na parte anterior, ensinei a fazer uma consulta simples no MySQL, a consulta utilizada buscava as últimas 10 notícias da tabela de notícias e exibia-as seqüencialmente, da mais recente para a mais antiga.
Hoje vamos fazer uma consulta semelhante, mas iremos fazer o relacionamento entre as duas tabelas (noticias
e categorias
) para buscar apenas as notícias de uma categoria.
Começaremos o arquivo consulta-avancada.php
da mesma forma que iniciamos o anterior, com um bloco de comentários que explica o arquivo e inclui o arquivo que cria a instância do MySQLi que será usada nesse novo arquivo.
Agora iremos definir uma variável contendo o nome da categoria que iremos usar para filtrar as notícias… O conteúdo dessa variável está “hard coded” no arquivo, mas poderia ser dinâmico e vir da uma variável $_GET
, por exemplo.
Feito isso, montaremos a consulta que será executada no banco de dados:
O interessante dessa consulta é que ela busca os registros da tabela noticia
que possuam um relacionamento com os registros da tabela categorias
e, o registro correspondente na tabela categorias
deve possuir o valor da variável $categoria
no campo nome
.
Para quem não entendeu a explicação acima, vale a pena a leitura do meu artigo Relacionamento de Tabelas no MySQL.
Continuando o script, rodamos a consulta e exibimos o resultado:
E, para finalizar, exibimos o total de resultados encontrados e limpamos a consulta da memória do PHP:
E vocês acabaram de ver um exemplo de consulta complexa usando MySQLi! :)
Faça o download dos arquivos desse tutorial aqui: PHP-e-MySQL-Consulta-Avançada.zip
Abraços e até a próxima!