Quiero organizar unas categorias como lo maneja wordpress donde tenga una jerarquia. actualmente tengo las siguientes tablas:
categorias
ID / Nombre / Descripcion / Estado
categorias_relacion
ID / principal / secundaria
Para tener una relacion de cada categoria con cada una, en la tabla categorias_relacion indico los Id para saber a donde pertenece cada uno.
la idea de esto es podar visualizar todas las categorias que desee sin problema alguno, el codigo que tengo actulamente es:
Código PHP:
$i=0;
$sql2="SELECT * FROM categoria_relacion ORDER BY principal ASC";
$res2=mysql_query($sql2);
while($row=mysql_fetch_assoc($res2) ){
$prin=$row['principal'];
$sql4="SELECT * FROM categoria WHERE estado=1 AND ID=$prin ORDER BY Nombre ASC";
$res4=mysql_query($sql4);
while($row=mysql_fetch_assoc($res4) ){
$id=$row['ID'];
$nombre=$row['Nombre'];
$descri=$row['descripcion'];
$estado=$row['estado'];
$conteo=0;
$i++;
if (($i%2)==0) {
$class="even";
}
else{
$class="odd";
}
echo '<tr class="'.$class.'">
<td>'.$nombre.' // '.$prin.'</td>
<td>'.$descri.'</td>
<td>'.$conteo.'</td>'; ?>
<td>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="edit" method="post">
<input name="editar" title="Editar" type="image" src='<? echo $url; ?>imagenes/edit.png' value="<? echo $num; ?>" />
<input type="hidden" name="num" value="<? echo $num;?>" />
<input type="hidden" name="editar"/>
</form>
</td>
</tr>
<?
$sql="SELECT * FROM categoria_relacion WHERE principal=$id ORDER BY secundaria ASC";
$res=mysql_query($sql);
while($row=mysql_fetch_assoc($res) ){
$prin=$row['principal'];
$sec=$row['secundaria'];
$sql1="SELECT * FROM categoria WHERE estado=1 AND ID=$sec ORDER BY Nombre ASC";
$res1=mysql_query($sql1);
while($row=mysql_fetch_assoc($res1) ){
$id=$row['ID'];
$nombre=$row['Nombre'];
$descri=$row['descripcion'];
$estado=$row['estado'];
$conteo=0;
echo '<tr class="'.$class.'">
<td> - '.$nombre.' / '.$prin.' - '.$sec.'</td>
<td>'.$descri.'</td>
<td>'.$conteo.'</td>'; ?>
<td>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="edit" method="post">
<input name="editar" title="Editar" type="image" src='<? echo $url; ?>imagenes/edit.png' value="<? echo $num; ?>" />
<input type="hidden" name="num" value="<? echo $num;?>" />
<input type="hidden" name="editar"/>
</form>
</td>
</tr>
<?
}
}
}
}
echo "Total resultados: <b>$i</b>";
?>
Cocinas
- Astra
- Iride
- prueba 1
Astra
- Cocinas
Cocinas
- Moderno
La Idea es obtener lo siguiente:
Cocinas
- Astra
-- Cocinas
--- Moderno
- Iride
- prueba 1