
PHP para montar consultas SQL com retorno duplo na mesma tabela
Recomendações de segurança para desenvolvedores
Sempre crie uma frase de segurança única para jogos, airdrops e qualquer outra aplicação de origem desconhecida. Evite utilizar sua carteira principal.
Desenvolvendo lógica SQL com PHP para menus hierárquicos
Ao trabalhar com desenvolvimento web e bancos de dados, é comum a necessidade de construir estruturas hierárquicas como menus e submenus. Este post explora como usar PHP para montar essas estruturas dinamicamente com base em uma única tabela relacional no banco de dados.
Contextualização do problema
Imagine que temos uma tabela chamada pg_menu
, responsável por armazenar informações sobre menus e submenus de um sistema. Cada linha da tabela possui o campo ID_MENU_ID
, que funciona como uma chave estrangeira para o campo MENU_ID
, formando assim uma estrutura de relacionamento entre os itens principais e seus subitens.
Objetivo e funcionamento da solução
Nosso objetivo é montar uma árvore de menus e submenus utilizando PHP, com base na estrutura relacional da tabela pg_menu
. Não abordaremos aqui frameworks ou abstrações complexas, mas sim a lógica pura em PHP com consultas SQL organizadas.
Exemplo prático de script PHP
<?php include("./conecta.php"); echo '<ul id="Menu-airdropsQb" class="nav">'; $MENUSQL = "SELECT * FROM pg_menu ORDER BY MENU_NOME ASC"; $RESULTMENU = $con->query($MENUSQL); if ($RESULTMENU->num_rows > 0) { while ($linha = $RESULTMENU->fetch_assoc()) { $MENUID = $linha["MENU_ID"]; $MENUNOME = $linha["MENU_NOME"]; $MENUIDMENUP = $linha["ID_MENU_ID"]; if ($MENUIDMENUP == 0) { $SUBMENUSQL = "SELECT * FROM pg_menu WHERE ID_MENU_ID = $MENUID ORDER BY MENU_NOME ASC"; $RESULTSUBMENU = $con->query($SUBMENUSQL); if ($RESULTSUBMENU->num_rows > 0) { echo '<li class="nav-item"> <a class="nav-link has-arrow waves-effect waves-dark" href="#"> <i class="mdi mdi-gauge"></i> <span class="hide-menu">' . $MENUNOME . '</span> </a> <ul class="collapse">'; while ($linha = $RESULTSUBMENU->fetch_assoc()) { $SUBMENUNOME = $linha["MENU_NOME"]; echo '<li class="nav-item"><a class="nav-link" href="index.html">' . $SUBMENUNOME . '</a></li>'; } echo '</ul></li>'; } else { echo '<li class="nav-item nav-small-cap">' . $MENUNOME . '</li>'; } } } } mysqli_close($con); echo '</ul>'; ?>
Considerações e aplicações futuras
Esse exemplo mostra como construir estruturas de navegação com base em dados dinâmicos, úteis tanto para sistemas administrativos quanto para sites com conteúdos organizados por categorias e subcategorias.
Você pode adaptar esse código para frameworks como Laravel ou CodeIgniter, ou até mesmo transformar em uma API REST que retorne os dados em JSON.
Boas práticas de segurança e manutenção
- Evite concatenar diretamente valores SQL; use prepared statements.
- Valide entradas e proteja contra SQL Injection.
- Mantenha backups dos bancos de dados usados.
Para mais detalhes sobre estruturação de menus dinâmicos e consultas SQL aninhadas, recomendamos a leitura da documentação oficial do MySQLi em PHP.
Conclusão
Montar menus dinâmicos com PHP e SQL é uma tarefa que exige lógica bem definida e boa organização de tabelas. Ao utilizar relacionamentos corretos e scripts bem estruturados, você consegue criar interfaces dinâmicas e escaláveis com facilidade.
Se este tutorial ajudou você ou se tiver sugestões, deixe seu comentário! Vamos continuar aprendendo juntos sobre desenvolvimento web e boas práticas.
#php; #sql; #menusdinamicos