Tenes toda la razon gnzsoloyo, si algún moderador puede mover el tema al foro de php,
Este es el código que utilizo, pero solo funciona cuando $categoria es 0 porque no encuentra resultados con categorías intermedias o finales
Código PHP:
<?php
$categoria = "0";
$consulta_0 = "SELECT *, COUNT(p.idProducto) FROM productos as p INNER JOIN categorias as c3 ON p.idCat=c3.id
INNER JOIN categorias as c2 ON c3.id_padre=c2.id INNER JOIN categorias as c1 ON c2.id_padre=c1.id
WHERE c1.id_padre='".$categoria."' GROUP BY c1.nombre ORDER BY COUNT(p.idProducto) DESC";
$resultados_0 = mysql_query($consulta_0);
while ($row_0 = mysql_fetch_assoc($resultados_0))
{
echo $row_0['nombre'];
$consulta_1 = "SELECT *, COUNT(p.idProducto) FROM productos as p INNER JOIN categorias as c3 ON p.idCat=c3.id
INNER JOIN categorias as c2 ON c3.id_padre=c2.id WHERE c2.id_padre='".$row_0['id']."'
GROUP BY c2.nombre ORDER BY COUNT(p.idProducto) DESC";
$resultados_1 = mysql_query($consulta_1);
while ($row_1 = mysql_fetch_assoc($resultados_1))
{
echo "-".$row_1['nombre']." (".$row_1['COUNT(p.idProducto)'].")";
}
}
?>
Esto me muestra algo así ... solo si encuentra resultados:
Alimentos
- Carnes (3)
- Verduras (7)
- Frutas (2)
Pero al pasarle el id de carnes no funcionaria ... y quiero q me muestre algo así
Carnes
- Cortes especiales (2)
- Embutidos (1)
Muchas gracias por la correccion