Foros del Web » Programando para Internet » PHP »

categorias y subcategorias...

Estas en el tema de categorias y subcategorias... en el foro de PHP en Foros del Web. hola, pues esta es mi situación: tengo dos tablas: descargas_c donde se encuentran las categorias principales descargas_s donde se encuentran las subcategorias entonces...quiero mostrar en ...
  #1 (permalink)  
Antiguo 25/01/2004, 11:00
 
Fecha de Ingreso: diciembre-2003
Mensajes: 26
Antigüedad: 20 años, 3 meses
Puntos: 0
categorias y subcategorias...

hola, pues esta es mi situación:

tengo dos tablas:

descargas_c donde se encuentran las categorias principales

descargas_s donde se encuentran las subcategorias

entonces...quiero mostrar en una pagina las categorias principales....y si esa categoria principal tiene una subcategoria que la muestre al lado....

Código PHP:
$resmysql_query("SELECT descargas_c.id,descargas_c.titulo,descargas_s.id,descargas_s.id_c,descargas_s.titulo FROM descargas_c, descargas_s ORDER BY descargas_c.titulo,descargas_s.titulo"); //selecciono los id y los titulos y el id_c que es el que indica de quien es la subcategoria

while(list($id1$titulo1$id2$id_c$titulo2) = mysql_fetch_array($res)) {
echo 
"$titulo1";
if(
$id_c==$id1){//si el id_c es igual al id de la categoria principal es subcategoria
echo " - $titulo2 <br>";
}else{
echo 
"<br>";

pero me sale mal...que me recomiendan para esto de categorias y subcategorias????

Gracias.
  #2 (permalink)  
Antiguo 25/01/2004, 23:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Para categorías y subcategorías, mejor es ponerlas en una misma tabla y agregar un campo que indique el id de la categoría a la que pertenece.. para las categorías de nivel 1 (que no son subcategorías de nadie) puedes poner el valor de este campo en 0 ó -1
--id-- ----Nombre---- --otros_campos-- --id_padre--
---------------------------------------------------------------
...1...........php................bla, bla...................0
...2..........scripts.............ble, ble...................1
...3.......tutoriales............bli, bli ....................1
...4..........Flash...............blo, blo...................0
...5........de Pago............blu, blu....................2

Eso significa que "php" y "flash" son categorías principales... scripts, y tutoriales son subcategorías de "php" y "de Pago" es una subcategoría de "scripts" (o sea una sub-sub de php)...

De esta manera sólo se hará la consulta en una tabla... todos los "padres" tendrán el campo id_padre en 0...

No sé si se entendi.. pero yo lo haría así..

saludos

Última edición por jpinedo; 26/01/2004 a las 00:02
  #3 (permalink)  
Antiguo 26/01/2004, 05:05
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
hola,
yo lo haria con 2 tablas y en la tabla subcategorias hacer un campo que referencie a la tabla categorias. Entonces para mostrar estos datos haria esto en PHP (resumidamente):

select * from categorias
while (recorre todas las categorias obtenidas)
{
echo "nombre categoria"
select * from subcategorias where idcategoria= id categoria obtenido en 1ª select

while (recorre todas las subcategorias de la categoria)
{
echo "nombre subcategoria"
}
}


Si con este codigo no te aclaras, escribe otro post y ya te lo pongo mas concreto,ok?

un saludo
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #4 (permalink)  
Antiguo 26/01/2004, 16:14
 
Fecha de Ingreso: diciembre-2003
Mensajes: 26
Antigüedad: 20 años, 3 meses
Puntos: 0
Sonrisa

puchitol

ya funciona, o al menos hasta ahora, gracias a los dos, pero al primero, mi problema era el codigo para mostrarlo, nada mas.....gracias a puchitol. Cualquier problema te digo


Thanx!!!!
  #5 (permalink)  
Antiguo 26/01/2004, 17:05
 
Fecha de Ingreso: diciembre-2003
Mensajes: 26
Antigüedad: 20 años, 3 meses
Puntos: 0
ya!!! funciona perfectamente....Gracias
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 17:01.