Foros del Web » Programando para Internet » PHP »

Imprimir Categoria y Subcategorias

Estas en el tema de Imprimir Categoria y Subcategorias en el foro de PHP en Foros del Web. Buen dia, Tengo dos tablas una categorias y la otra subcategorias y hago un INNER JOIN para traer los resultados Código PHP: $consulta  =  "select * from tbl_tipo_perfil as perfil inner join tbl_tipo_sub_perfil as subperfil ON perfil.tp_codigo = subperfil.tp_codigo" ...
  #1 (permalink)  
Antiguo 08/04/2011, 09:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 17 años, 8 meses
Puntos: 394
Imprimir Categoria y Subcategorias

Buen dia,

Tengo dos tablas una categorias y la otra subcategorias y hago un INNER JOIN para traer los resultados

Código PHP:
$consulta "select * from tbl_tipo_perfil as perfil inner join tbl_tipo_sub_perfil as subperfil ON perfil.tp_codigo = subperfil.tp_codigo"
Hasta aqui todo bien, me retorna unos resultados asi:

cultural - teatro
cultural - exposiciones
cultural - titeres
deporte - futbol
deporte - Volleyball

Estoy intentando hacer algo como esto:

CULTURAL
teatro
exposiciones
titeres
DEPORTE
futbol
volleyball

pero no logro hacerlo ni se como hacer para decirle que mientra categoría sea igual a categoría solo me imprima una vez la categoría....

Alguien me hecha una manito por favor ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 08/04/2011, 09:14
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 12 años
Puntos: 288
Respuesta: Imprimir Categoria y Subcategorias

eso lo queres hacer en php?
  #3 (permalink)  
Antiguo 08/04/2011, 09:21
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 17 años, 8 meses
Puntos: 394
Respuesta: Imprimir Categoria y Subcategorias

Como los resultados son generados a travez de una consulta entre PHP y MySql seria bueno seguir con PHP pero si tienen otra forma de hacerlo estoy abierto a posibilidades.

Lo unico que he logrado es:

CULTURAL
teatro
CULTURAL
exposiciones
CULTURAL
titeres
DEPORTE
futbol
DEPORTE
volleyball

Gracias por responder.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 08/04/2011, 09:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 12 años
Puntos: 288
Respuesta: Imprimir Categoria y Subcategorias

supongamos esto
Código PHP:
Ver original
  1. $consulta = "select * from categorias";
  2. $res=mysql_query($consulta);
  3. while ($row = mysql_fetch_object($res)) {
  4.     echo 'Categoria: '.$row->Categoria;
  5.  
  6.     $res2=mysql_query("select * from subcategorias where subcategorias.id_categoria = categorias.id");
  7.     while ($row2 = mysql_fetch_object($res2)) {
  8.         echo 'Sub-Categoria: '.$row2->subCategoria;
  9.     }
  10.  
  11. }
  #5 (permalink)  
Antiguo 08/04/2011, 09:52
Avatar de mashter  
Fecha de Ingreso: mayo-2008
Mensajes: 116
Antigüedad: 14 años, 8 meses
Puntos: 6
Respuesta: Imprimir Categoria y Subcategorias

la solucion de Patriarka es un metodo bueno para 1-2 niveles,

pero si tienes 5 subcategorias entonces generaras muchas muchas muchas consultas y problemas de rendimiento.

si esta es tu necesidad agregale a tu tabla un campo nuevo que podria llamar ruta_absoluta (por ejemplo), y en ese campo almacenas algo como cultural/teatro/contemporaneo/etc y te ahorras muchos querys
__________________
- - - - - - - - -
  #6 (permalink)  
Antiguo 08/04/2011, 09:53
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 17 años, 8 meses
Puntos: 394
Respuesta: Imprimir Categoria y Subcategorias

Cita:
Iniciado por Patriarka Ver Mensaje
supongamos esto
Código PHP:
Ver original
  1. $consulta = "select * from categorias";
  2. $res=mysql_query($consulta);
  3. while ($row = mysql_fetch_object($res)) {
  4.     echo 'Categoria: '.$row->Categoria;
  5.  
  6.     $res2=mysql_query("select * from subcategorias where subcategorias.id_categoria = categorias.id");
  7.     while ($row2 = mysql_fetch_object($res2)) {
  8.         echo 'Sub-Categoria: '.$row2->subCategoria;
  9.     }
  10.  
  11. }
Muchas gracias este funciona perfectamente, pero como veras son dos consultas las necesarias y me tocaría cambiar varias cosas.

Seria posible hacerlos con el INNER JOIN que estoy realizando ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 08/04/2011, 09:56
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 12 años
Puntos: 288
Respuesta: Imprimir Categoria y Subcategorias

adaptalo a tu sistema y hace tu propia experiencia
aunque tiene razon MASHTER, no te quise confundir,

lo iedal es hacer una sola tabla con categorias y que sea RECURSIVA

te puedo enviar un ejemplo dame un tiempo que veo si te lo consigo
  #8 (permalink)  
Antiguo 08/04/2011, 10:11
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 12 años
Puntos: 288
Respuesta: Imprimir Categoria y Subcategorias

algo asi funcionaria o le haria falta alguna mejora
solo necesitas una tabla
Código HTML:
Ver original
  1. [HIGHLIGHT="PHP"]
  2. function recursiva($padre=0){
  3.     $sql="select  from categories where id =".$padre;
  4.     $res=mysql_query($sql);
  5.     if(mysql_num_rows($res) > 0){
  6.         while ($row = mysql_fetch_object($res)) {
  7.             echo $row->category.'<br />';
  8.             if($row->category==0){
  9.                 recursiva($row->category);
  10.             }
  11.         }
  12.     }
  13. }
[/HIGHLIGHT]
  #9 (permalink)  
Antiguo 08/04/2011, 10:36
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 17 años, 8 meses
Puntos: 394
Respuesta: Imprimir Categoria y Subcategorias

Definitivamente no me funciona, no se que mas hacer para imprimir estos benditos resultados.... x(
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 08/04/2011, 11:02
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 12 años
Puntos: 288
Respuesta: Imprimir Categoria y Subcategorias

que es lo que no te funciona?? la recursividad?

lo anterior a recursividad te funciono dijiste
  #11 (permalink)  
Antiguo 08/04/2011, 12:11
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 17 años, 8 meses
Puntos: 394
Respuesta: Imprimir Categoria y Subcategorias

En este momento lo logre sin la recursividad pero esto implica varios SELECT y lo que deseo es que se realice solo una consulta y a partir de ahí imprimir los campos

Es posible hacerlos sin hacer dos consultas ? la parte de recursividad trate de aplicarla a mi código pero no lo logre.

Gracias a quien me pueda ayudar.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #12 (permalink)  
Antiguo 08/04/2011, 12:54
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 17 años, 8 meses
Puntos: 394
Respuesta: Imprimir Categoria y Subcategorias

Bueno lo he conseguido gracias a un codigo viejo de mi IDOLO GatorV... aca coloco el resultado para las personas que tengan dudas parecidas.

Código PHP:
<?php

$conexion 
mysql_connect('localhost''user''pass');
mysql_select_db('prog_db');
    
$sqlQuery mysql_query("select * from tbl_tipo_perfil as perfil inner join tbl_tipo_sub_perfil as subperfil ON perfil.tp_codigo = subperfil.tp_codigo"$conexion) or die(mysql_error());

$categoria "";
$categorias = array();
$pos 0;
while (
$row mysql_fetch_object($sqlQuery)){
    if(
$categoria != $row -> tp_nombre){
        
$categoria $row -> tp_nombre;
        
$pos array_push$categorias,  array( $categoria, array() ) );
    }    
    
$categorias[$pos][1][] = array( $row->tsp_codigo$row -> tsp_nombre );
    
}
foreach (
$categorias as $categoria)
{
    if( !empty( 
$categoria[0] ) ) {
           echo 
"<h1>" $categoria[0] . "</h1>";
    }
    if (
count($categoria[1]) > 0)
    {
        echo 
"<ul class='sidemenu'>";
        foreach (
$categoria[1] as $subCat)
        {
            echo 
"<li><a href='index.php?mod=categoria&amp;categoriaID=" $subCat[0] . "'>" .
                
$subCat[1] . "</a></li>";
        }
        echo 
"</ul>";
    }
}
?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Etiquetas: subcategorias, categorias
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:56.