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

Pessoal Socorro!


Rafael_tst

Pergunta

Olá Galera, olha eu incomodando de novo;

Pessoal o negócio é o seguinte, to fazendo um script, no qual quero usar um menu que tenha categorias e subcategorias ilimitadas ( que depois eu crio um painel de adm, para poder adicionalas ou removelas)

Eu já até consegui fazer o tal menu, ele funciona, porém eu acho que fiz de modo errado, eu fiz ele de modo que pra cada nivel de subcategoria ele executa um bloco de codigo, só que eu to escrevendo esse bloco manualmente, gostaria de saber se com "for" eu consigo automatizar ele, vou explicar melhor:

o resultado que quero obter é mais ou menos assim:

Categoria 01 id 1

Categoria 02 id 2

  Sub-Categoria de 02 id 3

    Sub-Categoria de 03 id 4

      Sub-Categoria de 04 id 5

Categoria 06 id 6

Categoria 07 id 7

Sacaram, onde cada linha dessa é um link,

Eu andei lendo e sei que isso chama-se menu em árvore.

é tipo aquele menu do OS-COMMERCE, Entenderam?

Pelo que andei lendo eu teria que usar uma classe pra fazer, mas eu não sei fazer classes e nem como chama-las.

vou postar o código que eu fiz:

( não reparem muito pois eu sou super iniciante em php ainda):

<?

include ('configure.php');

$tabela = TAB_CATEGORIAS;

$id=$_GET[id];

$teste=explode("_", $id);
$atual = end($teste);

$sql1 = mysql_query("SELECT id,nome,sub_cat FROM $tabela");

while ( $linha = mysql_fetch_array( $sql1 ) )
    {
  $j=null;
  $n_cats = $linha['nome'];
  $n_id = $linha['id'];
  $n_sub = $linha['sub_cat'];
  $cpath = $n_id;

  if($n_sub==$j)   // teste para ver se nào tem parente

       {
       echo "<a href =index.php?id=$cpath>$n_cats</a><BR>";
       // até aki beleza """
 ##################################################

 $sql2=mysql_query("SELECT * FROM $tabela WHERE sub_cat = '$teste[0]'");


                  while ( $linha2 = mysql_fetch_array( $sql2 ) )
                  {// while 2
                   if($linha2['sub_cat']==$n_id){// if 2
                   $n_cats2 = $linha2['nome'];
                   $n_id2 = $linha2['id'];
                   $n_sub2 = $linha2['sub_cat'];
                   $cpath2 = $n_id . '_' . $n_id2;


                  echo "    <a href =index.php?id=$cpath2>$n_cats2</a><BR>";

                  //////////////////////////// aqi eu começo a repetir o codigo pra poder //mostrar outro nivel de sub-catergoria
                  
                  $sql3=mysql_query("SELECT * FROM $tabela WHERE sub_cat = '$teste[1]'");
                 while ( $linha3 = mysql_fetch_array( $sql3 ) )
                  {  //while 3
                   if($linha3['sub_cat']==$n_id2){ //if 3
                   $n_cats3 = $linha3['nome'];
                   $n_id3 = $linha3['id'];
                   $n_sub3 = $linha3['sub_cat'];
                   $cpath3 = $n_id . '_' . $n_id2 . '_'.$n_id3;
                   echo "        <a href =index.php?id=$cpath3>$n_cats3</a><BR>";
                   
                   /////////////////////////////////////////////////
                                    $sql4=mysql_query("SELECT * FROM $tabela WHERE sub_cat = '$teste[2]'");
                 while ( $linha4 = mysql_fetch_array( $sql4 ) )
                  {  //while 3
                   if($linha4['sub_cat']==$n_id3){ //if 3
                   $n_cats4 = $linha4['nome'];
                   $n_id4 = $linha4['id'];
                   $n_sub4 = $linha4['sub_cat'];
                   $cpath4 = $n_id . '_' . $n_id2 . '_'.$n_id3 . '_'.$n_id4;
                   echo "          <a href =index.php?id=$cpath4>$n_cats4</a><BR>";


                    }
                    }
                    }//termina if 3
                    }// termina whlie 3
                    } //termina if2
                    } //termina while 2

                    
       }//termina if

}//termina while de $linha
echo "<hr size=5>";


?>

Pessoal espero que tenham entendido qual é a minha dúvida, espero que alguém possa me ajudar.

desde já agradeço a todos.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...