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
SubCategoria3
Categoria 2
SubCategoria1
SubCategoria2
SubCategoria3
Categoria 3
SubCategoria1
SubCategoria2
SubCategoria3
La estructura de las tablas que estoy usando es la siguiente:
Estructura de tabla para la tabla `categorias`
Código
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`
Código
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.
Categoria 1
Categoria 2
Categoria 5
Categoria 4
1
SubCategoria1
SubCategoria2
SubCategoria3
2
SubCategoria1
SubCategoria2
SubCategoria3
3
SubCategoria1
SubCategoria2
SubCategoria3
Código
<?php // Ejemplo de Conexion a base de datos $servidor ='localhost'; $basedatos ='tutorial'; $usuario_basedatos ='tutorial'; $clave_basedatos ='XXXX'; //Conectamos con el servidor WHERE categorias.categoria_id = subcategorias.categoria_id $categoria = ""; $pos = 0; if($categoria != $row -> categoria_id){ echo "<h3>".$row -> categoria_nombre."...</h3>"; $categoria = $row -> categoria_id; } } foreach ($categorias as $categoria) { echo "<h1>" . $categoria[0] . "</h1>"; } { echo "<ul>"; foreach ($categoria[1] as $subCat) { echo "<li><a href='index.php?mod=categorias&categoria_id=" . $subCat[0] . "'>" . $subCat[1] . "</a></li>"; } echo "</ul>"; } } ?>
Pero no logro sacar como lo quiero, espero que me podáis ayudar.
Un saludo y gracias de nuevo