He tratado de desarrollar un sistema de categorias y subcategorias usando tablas relacionadas pero no lo he logrado, mi idea por el momento es generar un menu como este:
Categoria 1
SubCategoria1
SubCategoria2
SubCategoria3Categoria 2
SubCategoria1
SubCategoria2
SubCategoria3Categoria 3
SubCategoria1
SubCategoria2
SubCategoria3
La estructura de las tablas que estoy usando es la siguiente:
Estructura de tabla para la tabla `categorias`
CREATE TABLE `categorias` (
`categoria_id` int(10) NOT NULL auto_increment,
`categoria_nombre` varchar(150) NOT NULL,
PRIMARY KEY (`categoria_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
Estructura de tabla para la tabla `subcategorias`
CREATE TABLE `subcategorias` (
`subcategoria_id` int(10) NOT NULL auto_increment,
`categoria_id` int(10) NOT NULL,
`subcategoria_nombre` varchar(150) NOT NULL,
PRIMARY KEY (`subcategoria_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
Hasta el momento lo mejor que he logrado es generando la consulta de este modo, pero el resultado que me muestra no es el que yo quiero ya que solo me muestra 1 subcategoria por categoria.
Código PHP:
mysql_select_db("secciones");
//$sql="select subcategorias.subcategoria_id, subcategorias.subcategoria_nombre from categorias, subcategorias where categorias.categoria_id = subcategorias.categoria_id group by categorias.categoria_id";
$sql="SELECT categorias.*, subcategorias.* FROM categorias, subcategorias WHERE categorias.categoria_id=subcategorias.categoria_id GROUP BY categorias.categoria_id";
$result = mysql_query($sql);
$num_result = mysql_num_rows($result);
echo "<p>Número de Categorias encontradas: ".$num_result."</p>";
while($row = mysql_fetch_array($result))
{
echo "<p><strong> ".($i+1).".- ";
echo stripslashes($row["categoria_nombre"])."<br>";
echo stripslashes($row["subcategoria_nombre"])."<br>";
}
Gracias de ante mano