Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas While no Menu


kel777

Pergunta

Boa noite pessoal, estou fazendo um menu de Categorias e Subcategorias, é um menu com DropDown (Aparece mais opções ao passar o mouse), então a ideia é ao colocar o mouse encima da Categoria, apareça as Subcategorias referente a categoria. Mais não está funcionando, e acusa o erro nas linhas 6 e 14 que são exatamente as linhas da While. vou mandar o código, para que algum de vocês possam me ajudar!

<ul class="dropdown dropdown-horizontal">
            <!--MENU-->
            <?
            $sql="SELECT * FROM categoria";
            $result=mysql_query($sql);
            while($rows=mysql_fetch_array($result)){
            ?>
            <li><a href="produtos-selecionar.php?Categoria=<? echo $rows['Codigo']; ?>" class="dir"><? echo $rows['Categoria']; ?></a>
            <!--SUBMENU-->
        <ul>
            <?
            $sql2="SELECT * FROM Categoria JOIN Subcategoria ON(Codigo = Codigo) WHERE Codigo=$Codigo";
            $result=mysql_query($sql2);
            while($rows=mysql_fetch_array($result)){
            ?>
            <li><a href="produtos-selecionar.php?Categoria=<? echo $rows['Codigo']; ?>&Subcategoria<? echo $rows['ID']; ?>"><? echo $rows['Subcategoria']; ?></a></li>
        <? } ?>
        </ul>
        <? } ?>
            </ul>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Primeiro: Não use short tags like: "<? ?>" use: "<?php ?>"

Segundo:

Sua sentença está um pouco confusa

você diz ON (Codigo = Codigo) ??? Qual é o campo em Subcategoria que identifica o código da categoria pai?

De onde vem a variável $codigo ? Acredito que ela deve ser substituída por $row['Codigo']

Terceiro:

Você está utilizando a variável $rows no segundo looping. Essa variável já foi definida dentro do escopo então você precisa definir outra para o segundo looping.

<?
        $sql2="SELECT * FROM Categoria JOIN Subcategoria ON(Codigo = Codigo) WHERE Codigo=$row['Codigo']";
        $result=mysql_query($sql2);
        while($rowsSubcategoria=mysql_fetch_array($result)) {
        ?>
        <li><a href="produtos-selecionar.php?Categoria=<? echo $rowsSubcategoria['Codigo']; ?>&Subcategoria<? echo $rowsSubcategoria['ID']; ?>"><? echo $rowsSubcategoria['Subcategoria']; ?></a></li>
        <? } ?>

Olha se te ajuda!

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá amigo, muito obrigado por me responder!

O sistema dos códigos é o seguinte...

Tenho uma tabela para 'Categoria' e uma para 'Subcategoria'

Ao cadastrar a Categoria gera um código, que é cadastrado também na Subcategoria, assim fica, todas as Subcategorias com o mesmo Código da Categoria selecionada. acho que deu pra entender rs...

Tive um problema com a solução que você me mandou, o problema apareceu com as aspas na parte de $row['Codigo']; no Select...

Muito obrigado, um abraço.

Primeiro: Não use short tags like: "<? ?>" use: "<?php ?>"

Segundo:

Sua sentença está um pouco confusa

você diz ON (Codigo = Codigo) ??? Qual é o campo em Subcategoria que identifica o código da categoria pai?

De onde vem a variável $codigo ? Acredito que ela deve ser substituída por $row['Codigo]

Terceiro:

Você está utilizando a variável $rows no segundo looping. Essa variável já foi definida dentro do escopo então você precisa definir outra para o segundo looping.

<?
        $sql2="SELECT * FROM Categoria JOIN Subcategoria ON(Codigo = Codigo) WHERE Codigo=$row['Codigo']";
        $result=mysql_query($sql2);
        while($rowsSubcategoria=mysql_fetch_array($result)) {
        ?>
        <li><a href="produtos-selecionar.php?Categoria=<? echo $rowsSubcategoria['Codigo']; ?>&Subcategoria<? echo $rowsSubcategoria['ID']; ?>"><? echo $rowsSubcategoria['Subcategoria']; ?></a></li>
        <? } ?>

Olha se te ajuda!

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

amigo, fiz exatamente oque você me falou, o código fico assim:

<ul class="dropdown dropdown-horizontal">
            <!--MENU-->
            <?php
            $sql="SELECT * FROM categoria";
            $result=mysql_query($sql);
            while($rows=mysql_fetch_array($result)){
            ?>
            <li><a href="produtos-selecionar.php?Categoria=<? echo $rows['Codigo']; ?>" class="dir"><? echo $rows['Categoria']; ?></a>
            <!--SUBMENU-->
        <ul>
            <?php
            $sql2="SELECT * FROM Categoria JOIN Subcategoria ON(Codigo = Codigo) WHERE Codigo={$row['Codigo']}";
            $result=mysql_query($sql2);
            while($rows=mysql_fetch_array($result)){
            ?>
            <li><a href="produtos-selecionar.php?Categoria=<? echo $rows['Codigo']; ?>&Subcategoria<? echo $rows['ID']; ?>"><? echo $rows['Subcategoria']; ?></a></li>
        <? } ?>
        </ul>
        <? } ?>
        </ul>
Mais ainda esta dando o mesmo erro nas linhas 6 e 14, não sei mais onde mexer rs..
Parceiro, Tenta o seguinte:
$sql2="SELECT * FROM Categoria JOIN Subcategoria ON(Codigo = Codigo) WHERE Codigo={$row['Codigo']}";

Esqueci que deve ser utilizando {} quando se quer imprimir um elemento do array.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...