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.
Pergunta
Rafael_tst
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):
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.