É 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