Boas...
O código que tenho é o seguinte:
Código (PHP):
Estrutura SQL
Código (SQL):
Explicação da lógica
Se a categoria tiver $row_consulta_familias['idpai'] = 0 é uma categoria e guarda o id em $row_consulta_familias['id']
Se a categoria tiver $row_consulta_familias['idpai'] = $row_consulta_familias['id'] é uma subcategoria (Filho)
A ligação á base de dados está a funcionar e com o código acima aparecem as categorias com o idpai=0
O problema é que ao fazer um ciclo que diz que o idpai=0... dentro dele não posso contradizer ao criar um ciclo que diz que o idpai=id (Visto este id ser diferente de zero)
O código que tenho é o seguinte:
Código (PHP):
<div class="collapse navbar-collapse js-navbar-collapse js-navbar">
<ul class="nav navbar-nav">
<!-- MENU REPETE X QTD CATEGORIAS PAI -->
<?php do { ?>
<?php if($row_consulta_familias['idpai'] == 0){ //MOSTRA SE IDPAI == 0 ?>
<li class="dropdown mega-dropdown">
<a href="category.php" class="dropdown-toggle" data-toggle="dropdown">
<?php echo $row_consulta_familias['texto_'.($_REQUEST['lang'])]; ?> <span class="fa fa-chevron-right pull-right"></span></a>
<ul class="dropdown-menu mega-dropdown-menu row dropmenu">
<!-- NOVIDADES DA CATEGORIA PAI -->
<li class="col-sm-3">
<ul>
<li class="dropdown-header padding0">NOVIDADES</li>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<a href="#"><img src="http://placehold.it/254x150/ff0000/f5f5f5/&text=YES+OLS" class="img-responsive" alt="product 1"></a>
<h4><small>descritivo</small></h4>
<button href="#" class="btn btn-block btnRosa" type="button">49,99 €</button> <button href="#" class="btn btn-block btnRosa" type="button"><span class="fa fa-heart"></span> Add to Wishlist</button>
</div><!-- End Item -->
</div><!-- End Carousel Inner -->
</div><!-- /.carousel -->
<li class="divider"></li>
<li><a href="#"><span class="fa fa-plus"></span> Novidades</a></li>
</ul>
</li>
<!-- MENU REPETE X QTD CATEGORIAS FILHO -->
<?php if($row_consulta_familias['idpai'] == $row_consulta_familias['id']){ //MOSTRA SE O IDPAI(acima) = IDPAI ?>
<li class="col-sm-3">
<ul>
<li class="dropdown-header padding0 rgbaRosa">
<?php echo $row_consulta_familias['id']; ?>
<a href="index.php?page=cat"><?php echo $row_consulta_familias['texto_'.($_REQUEST['lang'])]; ?></a>
</li>
<!-- MENU REPETE X QTD CATEGORIAS FILHO-FILHO -->
<li><a href="index.php?page=scat">SubCat1</a></li>
<!-- FIM MENU REPETE X QTD CATEGORIAS FILHO-FILHO -->
<li class="divider"></li>
</ul>
</li>
<?php } ?>
<!-- FIM MENU REPETE X QTD CATEGORIAS FILHO-->
</ul>
</li>
<?php } ?>
<?php } while ($row_consulta_familias = mysql_fetch_assoc($consulta_familias)); ?>
<!-- FIM MENU REPETE X QTD CATEGORIAS PAI -->
</ul>
</div><!-- /.nav-collapse -->
<ul class="nav navbar-nav">
<!-- MENU REPETE X QTD CATEGORIAS PAI -->
<?php do { ?>
<?php if($row_consulta_familias['idpai'] == 0){ //MOSTRA SE IDPAI == 0 ?>
<li class="dropdown mega-dropdown">
<a href="category.php" class="dropdown-toggle" data-toggle="dropdown">
<?php echo $row_consulta_familias['texto_'.($_REQUEST['lang'])]; ?> <span class="fa fa-chevron-right pull-right"></span></a>
<ul class="dropdown-menu mega-dropdown-menu row dropmenu">
<!-- NOVIDADES DA CATEGORIA PAI -->
<li class="col-sm-3">
<ul>
<li class="dropdown-header padding0">NOVIDADES</li>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<a href="#"><img src="http://placehold.it/254x150/ff0000/f5f5f5/&text=YES+OLS" class="img-responsive" alt="product 1"></a>
<h4><small>descritivo</small></h4>
<button href="#" class="btn btn-block btnRosa" type="button">49,99 €</button> <button href="#" class="btn btn-block btnRosa" type="button"><span class="fa fa-heart"></span> Add to Wishlist</button>
</div><!-- End Item -->
</div><!-- End Carousel Inner -->
</div><!-- /.carousel -->
<li class="divider"></li>
<li><a href="#"><span class="fa fa-plus"></span> Novidades</a></li>
</ul>
</li>
<!-- MENU REPETE X QTD CATEGORIAS FILHO -->
<?php if($row_consulta_familias['idpai'] == $row_consulta_familias['id']){ //MOSTRA SE O IDPAI(acima) = IDPAI ?>
<li class="col-sm-3">
<ul>
<li class="dropdown-header padding0 rgbaRosa">
<?php echo $row_consulta_familias['id']; ?>
<a href="index.php?page=cat"><?php echo $row_consulta_familias['texto_'.($_REQUEST['lang'])]; ?></a>
</li>
<!-- MENU REPETE X QTD CATEGORIAS FILHO-FILHO -->
<li><a href="index.php?page=scat">SubCat1</a></li>
<!-- FIM MENU REPETE X QTD CATEGORIAS FILHO-FILHO -->
<li class="divider"></li>
</ul>
</li>
<?php } ?>
<!-- FIM MENU REPETE X QTD CATEGORIAS FILHO-->
</ul>
</li>
<?php } ?>
<?php } while ($row_consulta_familias = mysql_fetch_assoc($consulta_familias)); ?>
<!-- FIM MENU REPETE X QTD CATEGORIAS PAI -->
</ul>
</div><!-- /.nav-collapse -->
Estrutura SQL
Código (SQL):
CREATE TABLE `familia` (
`id` INT(3) NOT NULL AUTO_INCREMENT,
`codigo` VARCHAR(55) NOT NULL DEFAULT '',
`idpai` INT(3) NOT NULL DEFAULT '0',
`texto` VARCHAR(255) NOT NULL DEFAULT '',
`ativo` INT(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1;
`id` INT(3) NOT NULL AUTO_INCREMENT,
`codigo` VARCHAR(55) NOT NULL DEFAULT '',
`idpai` INT(3) NOT NULL DEFAULT '0',
`texto` VARCHAR(255) NOT NULL DEFAULT '',
`ativo` INT(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1;
Explicação da lógica
Se a categoria tiver $row_consulta_familias['idpai'] = 0 é uma categoria e guarda o id em $row_consulta_familias['id']
Se a categoria tiver $row_consulta_familias['idpai'] = $row_consulta_familias['id'] é uma subcategoria (Filho)
A ligação á base de dados está a funcionar e com o código acima aparecem as categorias com o idpai=0
O problema é que ao fazer um ciclo que diz que o idpai=0... dentro dele não posso contradizer ao criar um ciclo que diz que o idpai=id (Visto este id ser diferente de zero)