php foreach Multilevel menu

Asked

Viewed 116 times

0

inserir a descrição da imagem aqui

Hello friends all right ?

I am with the following problem I have this database need to create a menu with Multilevel for the blog site, created one with the following code:

<ul class="nav navbar-nav" style="display: block;">
        <?php
        $catsPassadas = array();
        foreach ($blog_categorias as $key => $blog_categoria) {
            $blog_categorias_filhasQ = $pdo->prepare('SELECT * FROM blog_categoria WHERE id_pai = :id_pai ORDER BY nome ASC');
            $blog_categorias_filhasQ->bindValue(':id_pai', $blog_categoria['id_pai'], PDO::PARAM_INT);
            $blog_categorias_filhasQ->execute();
            $blog_categorias_filhas = $blog_categorias_filhasQ->fetchall();
            if($blog_categorias_filhas){
                print_r($blog_categorias_filhas);
                echo '<br><br><br>';
        ?>
            <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?=$blog_categoria['nome']?>
                <span class="caret"></span></a>
                <ul class="dropdown-menu">
        <?php
                foreach ($blog_categorias_filhas as $keyf => $blog_categoria_filha) {
                    if (in_array($blog_categoria['id'], $catsPassadas)) {
                        continue;
                    }
                    $catsPassadas[] = $blog_categoria_filha['id'];
        ?>
                    <li><a href="#"><?=$blog_categoria_filha['nome']?></a></li>
        <?php
                }
        ?>
                </ul>
            </li>       
        <?php
            }else{
                if (in_array($blog_categoria['id'], $catsPassadas)) {
                    continue;
                }
                $catsPassadas[] = $blog_categoria['id'];
        ?>
            <li class="active"><a href="#"><?=$blog_categoria['nome']?></a></li>
        <?php
            }
        }
        ?>
      </ul>

but I was unsuccessful, how can I be solving this problem?

Thank you very much

1 answer

0


I could solve, I was doing the sql query incorrectly comparing id_pai with id_pai where it should be id_pai with id

$blog_categorias_filhasQ = $pdo->prepare('SELECT * FROM blog_categoria WHERE id_pai = :id ORDER BY nome ASC');
            $blog_categorias_filhasQ->bindValue(':id', $blog_categoria['id'], PDO::PARAM_INT);
            $blog_categorias_filhasQ->execute();

Browser other questions tagged

You are not signed in. Login or sign up in order to post.