@CanalQb


PHP - Montando uma Lógica para Criar Consultas SQL de Duplo Retorno da Mesma Tabela



Sempre crie uma frase de segurança única para jogos, Airdrops e qualquer outra coisa de origem desconhecida, em vez de usar sua carteira principal.



Ao enfrentar desafios de desenvolvimento de software e manipulação de bancos de dados, é comum deparar-se com situações que exigem lógica complexa, como a necessidade de elaborar consultas SQL que retornem dados de uma mesma tabela em duas fases distintas. Neste artigo, exploramos um cenário típico e fornecemos um exemplo prático de como montar um script para realizar essa tarefa.

Cenário:

Imaginemos uma situação onde temos uma tabela denominada pg_menu, que armazena informações sobre menus e submenus em um sistema. Cada registro possui um campo ID_MENU_ID que se relaciona com o MENU_ID de outro registro, criando uma hierarquia entre os menus e seus submenus.

Objetivo:

O objetivo é desenvolver um script que construa uma estrutura de menus e submenus em formato de lista aninhada, levando em consideração a estrutura da tabela pg_menu. Destaca-se que o foco aqui não é a parte de programação, mas sim a lógica de acionamento para gerar os resultados desejados.

Exemplo de Script:

<?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="#" aria-expanded="false">
                        <i class="mdi mdi-gauge"></i>
                        <span class="hide-menu">' . $MENUNOME . '</span>
                    </a>
                    <ul aria-expanded="false" 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 Finais:

Este exemplo de script ilustra a lógica de acionamento para montar uma estrutura de menus e submenus utilizando uma tabela que possui relacionamento entre seus registros. É importante ressaltar que este é apenas um exemplo e pode ser adaptado de acordo com as necessidades específicas do seu projeto. O objetivo principal é compreender a abordagem lógica por trás da criação de consultas SQL de duplo retorno da mesma tabela.

Sempre verifique a segurança do seu código e adote boas práticas de programação ao implementar scripts em ambientes de produção.