Foros del Web » Programando para Internet » PHP »

Categorias y subcategorías

Estas en el tema de Categorias y subcategorías en el foro de PHP en Foros del Web. Hola comunidad, de a poco estoy estudiando como armar un catálogo en php y mysql. Tengo dos tablas, una para categorías y otra para productos. ...
  #1 (permalink)  
Antiguo 03/03/2012, 16:37
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Categorias y subcategorías

Hola comunidad, de a poco estoy estudiando como armar un catálogo en php y mysql.

Tengo dos tablas, una para categorías y otra para productos. Hasta acá bien:

Por ejemplo:

<?php
$consulta = mysql_query("SELECT * FROM categorias");
?>

<table width="500" border="1">
<tr>
<td>Categorías</td>
</tr>

<?php
while($resultado = mysql_fetch_array($consulta))
{
?>

<tr>
<td><a href="productos.php?categorias=<?php echo $resultado['id_categoria']; ?>"><?php echo $resultado['nombre_categoria']; ?></a></td>
</tr>

<?php } ?>

................

Pero lo que quiero ahora es agregarle subcategorías, por lo que mi consulta es la siguiente:

Debo crear otra tabla que se llame subcategorias o dentro de la misma tabla categorias agregar un nuevo campo?.

Muchas gracias por guiarme!
  #2 (permalink)  
Antiguo 03/03/2012, 16:43
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: Categorias y subcategorías

dentro de la misma tabla
  #3 (permalink)  
Antiguo 03/03/2012, 17:07
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Categorias y subcategorías

Gracias jmabreu, entonces la tabla categorias quedaría de la siguiente manera?:

id_categoria
nombre_categoria
id_categoria_padre (si no tiene subcategoría será el 0)

y el select para categorías sería:

SELECT * FROM categorias WHERE id_categoria_padre = 0;


Pero la verdad no tengo idea como hacer para las subcategorías y que el menú me quede de la siguiente manera por ejemplo:

Categoria 1
Subcategoria 1
Subcategoria 1
Subcategoria 1

Categoria 2
Subcategoria 2
Subcategoria 2

Categoria 3

Gracias de nuevo por si me pueden ayudar un poco más...
  #4 (permalink)  
Antiguo 03/03/2012, 17:14
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: Categorias y subcategorías

quieres administrar categorias y subcategorias mediante una tabla cierto? la estructura correcta seria en caso que la manejaras por una parte grafica visual y no desde la BD si es lo contrario entonces no te sirve.

Tabla Categorias

ID
Categoria

Tabla subcategorias
ID
Categoria (refiriendose a la categoria de la otra tabla)
Subcategoria
  #5 (permalink)  
Antiguo 03/03/2012, 17:37
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Categorias y subcategorías

Gracias de nuevo, entonces para armar el siguiente menú:

Categoria 1
Subcategoria 1
Subcategoria 1
Subcategoria 1

Categoria 2
Subcategoria 1
Subcategoria 1

Categoria 3

debo agregar otra trabla llamada subcategorías?.

Muchas gracias.
  #6 (permalink)  
Antiguo 03/03/2012, 17:39
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: Categorias y subcategorías

dime si lo que quieres hacer es un menu como esto

http://www.enigmads.com/topito/
  #7 (permalink)  
Antiguo 03/03/2012, 17:45
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Categorias y subcategorías

Que tal elsolodigno,

Te dejo una referencia que al menos te va a servir de base para abordar el tema http://mikehillyer.com/articles/mana...data-in-mysql/, ahi vas a ver los dos modelos mas utilizados, Adjacency List Model(lo que tu tienes) y The Nested Set Model, te sugiero que leas las ventajas y limitaciones de cada modelo.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #8 (permalink)  
Antiguo 03/03/2012, 17:53
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Categorias y subcategorías

Gracias a los dos!:

jmabreu: si algo parecido, tengo varias categorías y subcategorías relacionadas.

masterpuppet: excelente el enlace, ya lo estoy leyendo!.

Saludos!.
  #9 (permalink)  
Antiguo 03/03/2012, 18:00
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: Categorias y subcategorías

quiero tener claro si haras un menu visual dependiendo de un BD
  #10 (permalink)  
Antiguo 03/03/2012, 18:26
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Categorias y subcategorías

Lo que quiero hacer es un menú en lista con div css embebiendo código php obviamente dependiendo de una BD. Ejemplo:

<div class="cath5">
<h5>CATEGORIAS</h5>

<div class="cat">
Categorias 1 (acá iría echo $res['categoria'];)
</div>
<div class="subcat">
<ul>
<li><a href="listado.php(acá iría ?subcat=$res['id_subcategoria'];)">Subcategoria 1</a></li>(acá iría echo $res['subcategoria'];)
<li><a href="listado.php">Subcategoria 1</a></li>
<li><a href="listado.php">Subcategoria 1</a></li>
</ul>
</div>
<div class="cat">
Categorias 2
</div>
<div class="subcat">
<ul>
<li><a href="listado.php">Subcategoria 2</a></li>
<li><a href="listado.php">Subcategoria 2</a></li>
</ul>
</div>

..................

Pero todavía estoy tratando de entender como armar el código en php, sus tablas y los select para mostrar las cat, subcat y productos. Luego embeberlo es fácil sabiendo como funciona

Gracias nuevamente...
  #11 (permalink)  
Antiguo 04/03/2012, 00:58
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Categorias y subcategorías

buenas, si quieres hacer categorias y subcategorias lo mejor es usar dos tablas (categorias y subcategorias) pero si quieres hacer categorias, subcategorias, subsubcategorias, subsubsubcategorias, etc lo mejor es una sola tabla agregando un campo idpadre en el que va el id del padre de la categoria, si es una de las principales idpadre es igual a cero.

Te dejo lo que usao para la primera opcion:

tablas:

categorias:
--id
--categoria
--descripcion

subcategorias:
--id
--idcat (aqui va el id de la categoria a la que pertenece)
--subcategoria
--descripcion

y ahora para mostrar la lista de las categorias y subcategorias pongo esto:

Código PHP:
Ver original
  1. $sent="SELECT * FROM categorias ORDER by categoria asc";
  2. $result=mysql_query($sent);
  3. while($ver=mysql_fetch_object($result)){
  4. $idcat=$ver->id;
  5. $categoria=$ver->categoria;
  6. echo"<b>$categoria</b><br/>";
  7. //inicio para mostrar las subcategorias de esta categoria
  8. $sent2="SELECT * FROM subcategorias WHERE idcat='".$idcat."' ORDER by subcategoria asc";
  9. $result2=mysql_query($sent2);
  10. while($ver2=mysql_fetch_object($result2)){
  11. $subcategoria=$ver2->subcategoria;
  12. echo"---$subcategoria<br/>";
  13. }//fin segundo while
  14. //---------------
  15. }//fin primer while

eso te muestra asi:

categoria uno
--sub 1
--sub 2
--sub 3
categoria dos
--sub 4
--sub 5
--sub 6
  #12 (permalink)  
Antiguo 04/03/2012, 15:03
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Categorias y subcategorías

Justo lo que estaba queriendo plasmar y no podia!. Muchas gracias!, lo probé y anduvo de maravilla; pero te consulto cómo sería usando mysql_fetch_array()?, ó no es recomendable?

Gracias nuevamente.
  #13 (permalink)  
Antiguo 05/03/2012, 00:32
Avatar de waldragon  
Fecha de Ingreso: mayo-2010
Mensajes: 735
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Categorias y subcategorías

No sabria decirte, creo que en este caso es mejor usar object antes que array.

Etiquetas: categorias, mysql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:21.