Imprimir subcategoria de uma categoria

Enviada por Jonas 
Jonas
Imprimir subcategoria de uma categoria
03 de December de 2011 às 10:26AM
Pessoal, no código abaixo, eu consigo imprimir todas as categorias com uma subcategoria cada, acontece que eu quero imprimir a subcategoria de apenas uma categoria, disco rígido por exemplo, as demais nao mostra nada.
Me ajudem a resolver isso, tentei muitas vezes e não consegui. Cabeça quente e pouco conhecimento de mysql.

<body>
<?php
$sql = "SELECT * FROM categoria ORDER BY categoria";
$qry = mysql_query($sql);
while ($linha = mysql_fetch_array($qry)){

echo "<b>".$linha[categoria]."</b><br>";

$id_cat=$linha[id_categoria];


$sql_sub = "SELECT * FROM subcategoria where id_categoria = '$id_cat'";
$qry_sub = mysql_query($sql_sub);
$linha_sub = mysql_fetch_array($qry_sub);

echo $linha_sub[subcategoria]."<br>";

}



?>

este código gera essa impressão:

Disco Rígido (Categoria)
HD Portatil (Subcategoria)

Flash Memory
kingston

Memorias
Markvision

Placas de Vídeo
Geforce

Placas Mae
MSI


</body>
</html>

eu quero assim.

Disco Rígido
HD Portatil

Flash Memory
(nada)
Memorias
(nada)
Placas de Vídeo
(nada)
Placas Mae


Agradeço qualquer ajuda.
Jonas
Re: Imprimir subcategoria de uma categoria
04 de December de 2011 às 03:37PM
Pra facilitar mais estou usando menu vertical em lista, vou colocar o codigo aqui, só que não funciona.

<body>
<?php
$sql = "SELECT * FROM categoria ORDER BY categoria"; //seleciona as categorias
$qry = mysql_query($sql);
while ($linha = mysql_fetch_array($qry))
{?>

<ul class="Ul">
<li><a href="#"><?php echo $linha[categoria];?></a> //imprime as categorias

<?php $id_cat=$linha[$id_categoria];

$sql_sub = "SELECT * FROM subcategoria WHERE id_categoria = '$id_cat'"; //Seleciona subcategorias
$qry_sub = mysql_query($sql_sub);
while ($linha_sub = mysql_fetch_array($qry_sub)){?>

<ul>
<li><?php echo $linha_sub[subcategoria];?></li>

</ul>
<?php } ?>


</li>

</ul>
<?php }?>
</body>
</html>
Jonas
Re: Imprimir subcategoria de uma categoria
04 de December de 2011 às 08:58PM
Bom pessoal, quebrei a cabeça aqui e acabei resolvendo o problema.
Se servir de ajuda pra alguem, abaixo esta o código. Resolví a parada utilizando o menu pop up.

<?php
$sql = "SELECT * FROM categoria ORDER BY categoria ASC";
$qry = mysql_query($sql);
while ($linha = mysql_fetch_assoc($qry))
{?>

<tr>
<td>
<ul class="Ul">
<li><a href="#"><?php echo "<b>".$linha[categoria]."</b>";?></a> //mostra a categoria no menu
<ul> //ao passar o mouse, ele vem aqui...
<?php
$id_cat = $linha[id_categoria];
$sql_sub = "SELECT * FROM subcategoria WHERE id_categoria = '$id_cat'";
$qry_sub = mysql_query($sql_sub);
while ($linha_sub = mysql_fetch_array($qry_sub)){?>

<li><a href=""><?php echo $linha_sub[subcategoria];?></a></li> //...e imprime as subcategorias.

<?php }?>
</ul>
</li>
</ul>


</td>

<?php }?>

Espero que isso ajude alguem ae.

Jonas
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.