Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2008, 22:58
Avatar de ANGELIUZ
ANGELIUZ
 
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 3 meses
Puntos: 0
Crear menu con Categorias y SubCategorias usando MySQL y PHP

Hola a todos, esta es la primera vez que posteo, les cuento que soy nuevo en php y mysql y me encuentro muy entretenido aprendiendo todos los dias algo nuevo, pero el tema en cuestion es que tengo un problema que no me ha dejado avanzar.

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`

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>";
    } 
Estoy recien aprendiendo y probablemente hay algo que es basico y que yo no estoy haciendo, agradeceria cualquier ayuda para poder seguir aprendiendo y aprendiendo.

Gracias de ante mano