É o seguinte:
tenho um menu dinâmico com 4 níveis gostaria que ocultasse o <li> para que o menu não apareça caso não haja no banco o item correspondente.
segue o código
<link type="text/css" href="menu.css" rel="Stylesheet" />
<div id="nav">
<ul>
<li><a href="#">Selecione a Categoria</a>
<!-- Categoria 1º nível ---->
<ul>
<?php
include "../connections/conexao.php";
$SQL = "SELECT * FROM categorias ORDER BY categoria asc limit 80";
$query = mysql_query($SQL);
while($row = mysql_fetch_array($query)) {
$categoria = $row['categoria'];
$id = $row['id'];
?>
<li><a href="#"><? echo $categoria; ?></a>
<!-- Início Sub-Categoria 2º nível ---->
<ul>
<?php
$SQL9 = "SELECT * FROM sub_categorias where id_categoria='$id' ORDER BY subcategoria asc";
$query9 = mysql_query($SQL9);
while($row9 = mysql_fetch_array($query9)) {
$sub_categoria = $row9['subcategoria'];
$id_sub_categoria = $row9['id'];
?>
<li><a href="#"><? echo $sub_categoria; ?></a>
<!-- Início dos Itens 3º nível ---->
<ul>
<?php
$SQL8 = "SELECT * FROM sub_sub_categorias where id_sub_categoria='$id_sub_categoria' ORDER BY sub_sub_categoria asc";
$query8 = mysql_query($SQL8);
while($row8 = mysql_fetch_array($query8)) {
$sub_sub_categoria = $row8['sub_sub_categoria'];
$id_sub_sub_categoria = $row8['id'];
?>
<li><a href="#"><? echo $sub_sub_categoria; ?></a>
<!-- Início do Sub-Itens 4º nível ---->
<ul>
<?php
$SQL7 = "SELECT * FROM sub_itens where id_sub_sub_categoria='$id_sub_sub_categoria' ORDER BY sub_item asc";
$query7 = mysql_query($SQL7);
while($row7 = mysql_fetch_array($query7)) {
$sub_item = $row7['sub_item'];
$id_sub_sub_categoria = $row7['id'];
?>
<li><a href="#"><? echo $sub_item; ?></a></li>
<?
}
?>
</ul>
<!-- Final do Sub-Itens 4º nível ---->
</li>
<?
}
?>
</ul>
<!-- Final dos Itens 3º nível ---->
</li>
<?
}
?>
</ul>
<!-- Final Sub-Categoria 2º nível ---->
<?
}
?>
</li>
</ul>
<!-- Final Categoria 1º nível ---->
</li>
</ul>
</div>
O css:
#nav {
float: left;
width:auto;
font: bold 12px Arial, Helvetica, Sans-serif;
border: 1px solid #121314;
border-top: 1px solid #2b2e30;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
}
#nav ul {
width:auto;
margin:0;
padding:0;
list-style:none;
}
#nav ul li {
float:left;
}
#nav ul li a {
float: left;
color:#d4d4d4;
padding: 10px 20px;
text-decoration:none;
background:#3C4042;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.09, rgb(59,63,65)), color-stop(0.55, rgb(72,76,77)), color-stop(0.78, rgb(75,77,77)) );
background: -moz-linear-gradient( center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78% );
background: -o-linear-gradient( center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78% );
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1) inset, 0 0 5px rgba(0, 0, 0, 0.1) inset;
border-left: 1px solid rgba(255, 255, 255, 0.05);
border-right: 1px solid rgba(0,0,0,0.2);
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6);
}
#nav ul li a:hover,
#nav ul li:hover > a {
color: #252525;
background:#3C4042;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.09, rgb(77,79,79)), color-stop(0.55, rgb(67,70,71)), color-stop(0.78, rgb(69,70,71)) );
background: -moz-linear-gradient( center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78% );
background: -o-linear-gradient( center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78% );
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2), 0 -1px #000;
}
#nav li ul a:hover,
#nav ul li li:hover > a {
color: #2c2c2c;
background: #5C9ACD;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.17, rgb(61,111,177)), color-stop(0.51, rgb(80,136,199)), color-stop(1, rgb(92,154,205)) );
background: -moz-linear-gradient( center bottom, rgb(61,111,177) 17%, rgb(80,136,199) 51%, rgb(92,154,205) 100% );
background: -o-linear-gradient( center bottom, rgb(61,111,177) 17%, rgb(80,136,199) 51%, rgb(92,154,205) 100% );
border-bottom: 1px solid rgba(0,0,0,0.6);
border-top: 1px solid #7BAED9;
text-shadow: 0 1px rgba(255, 255, 255, 0.3);
}
#nav li ul {
background:#3C4042;
background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0.09, rgb(77,79,79)), color-stop(0.55, rgb(67,70,71)), color-stop(0.78, rgb(69,70,71)) );
background-image: -moz-linear-gradient( center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78% );
background-image: -o-linear-gradient( center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78% );
border-radius: 0 0 10px 10px;
-moz-border-radius: 0 0 10px 10px;
-webkit-border-radius: 0 0 10px 10px;
left: -999em;
margin: 35px 0 0;
position: absolute;
width: 160px;
z-index: 9999;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset;
-moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset;
-webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset;
border: 1px solid rgba(0, 0, 0, 0.5);
}
#nav li:hover ul {
left: auto;
}
#nav li ul a {
background: none;
border: 0 none;
margin-right: 0;
width: 120px;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
border-bottom: 1px solid transparent;
border-top: 1px solid transparent;
}
#nav li li ul {
margin: -1px 0 0 160px;
-webkit-border-radius: 0 10px 10px 10px;
-moz-border-radius: 0 10px 10px 10px;
border-radius: 0 10px 10px 10px;
visibility:hidden;
}
#nav li li:hover ul {
visibility:visible;
}
#nav ul ul li:last-child > a {
-moz-border-radius:0 0 10px 10px;
-webkit-border-radius:0 0 10px 10px;
border-radius:0 0 10px 10px;
}
#nav ul ul ul li:first-child > a {
-moz-border-radius:0 10px 0 0;
-webkit-border-radius:0 10px 0 0;
border-radius:0 10px 0 0;
}
Pessoal!
Para facilitar dei um printscreen na tela dá uma olhada que vc vai entender.
Clique aqui










