Foros del Web » Programando para Internet » PHP »

repetir en una repetición

Estas en el tema de repetir en una repetición en el foro de PHP en Foros del Web. Buenas!! Bien, tengo un problema, así que paso a explicarlo: Tengo dos tablas: pages y menu. En pages me interesa la columna category y en ...
  #1 (permalink)  
Antiguo 02/10/2007, 11:33
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Pregunta repetir en una repetición

Buenas!!

Bien, tengo un problema, así que paso a explicarlo:

Tengo dos tablas: pages y menu.
En pages me interesa la columna category y en menu title y parent.
Ahora explico: tengo una función que muestra las páginas que hay en una categoría, la variable que usa es el título de la categoría, pero he pensado mejorarlo un poco, incluyendop subcategorías. ¿Cómo funcionan? Fácil, la columna parent se corresponde con el título de la categoría.

Un ejemplo:
  1. Categoría Pruebas
  2. Página Hola Mundo
  3. Subcategoría Buenas
    1. Página Hola Buenas
  4. Subcategoría Día
    1. Página Hace un buen día
Bien, ese es un esquema de una categoría con subcategorías y Páginas.

Pero tengo un problema, mejor dicho dos problemas, pero sin el código no se como explicarlos:
Código PHP:
function category($title$value2)
{
    require(
'Connections/SCMS.php');
    
mysql_select_db($database_SCMS$SCMS);
    
$query_pages "SELECT * FROM pages WHERE category = '$title' AND mode_show = '1'";
    
$pages mysql_query($query_pages$SCMS) or die(mysql_error());
    
$row_pages mysql_fetch_assoc($pages);
    
$totalRows_pages mysql_num_rows($pages);
    
    require(
'Connections/SCMS.php');
    
mysql_select_db($database_SCMS$SCMS);
    
$query_category "SELECT * FROM category WHERE parent = '$title'";
    
$category mysql_query($query_category$SCMS) or die(mysql_error());
    
$row_category mysql_fetch_assoc($category);
    
$totalRows_pcategory mysql_num_rows($category);
    
    
$title2 $row_category['title'];    
    require(
'Connections/SCMS.php');
    
mysql_select_db($database_SCMS$SCMS);
    
$query_sub_pages "SELECT * FROM pages WHERE title = '$title2'";
    
$sub_pages mysql_query($query_sub_pages$SCMS) or die(mysql_error());
    
$row_sub_pages mysql_fetch_assoc($sub_pages);
    
$totalRows_psub_pages mysql_num_rows($sub_pages);
    
    switch (
$value2) {
        case 
'title-cat':
            echo 
$row_pages['category'];
            break;
        case 
'title':
            echo 
$title;
            break;
        case 
'show':
            if(
$totalRows_pages 0) { // Show if recordset not empty 
            
echo '<ul>';
            do {
            echo 
'<li><a href="?action=default&id='.$row_pages['id'].'">'.$row_pages['title'].'</a></li>';
            } while (
$row_pages mysql_fetch_assoc($pages)); 
            echo 
'</ul>';
            } else { echo 
'No hay p&aacute;ginas dentro de esta categor&iacute;a'; }
            break;
        case 
'category':
            if(
$totalRows_category 0) { // Show if recordset not empty
            
echo 'Esta categor&iacute;a contiene las siguientes subcategor&iacute;as: <br/><ul>';
            do {
            echo 
'<li><a href="?action=default&cat='.$row_category['title'].'">'.$row_category['title'].'</a></li>';
            } while (
$row_category mysql_fetch_assoc($category));
            echo 
'</ul>';
            } else { }
    }
    
mysql_free_result($pages);
    
mysql_free_result($category);
    
mysql_free_result($sub_pages);

Bien, si os fijáis la variable para determinar las páginas que están dentro de una subcategoría es $title2, y debe ir cambiando a medida que se pasa de subcategoría, por ejemplo, si fuese siempre el valor de la primera fila el todas las subcategorías aparecerían las mismas páginas, en lugar de aparecer las correspondientes.

Pero el mayor problema es que usando el actual sistema para repetir los datos, no puedo repetir datos dentro de una repetición, de modo que puedo mostrar las subcategorías, pero no las páginas que éstas contienen.

¿Me podéis echar una mano?

Si necesitáis algún dato más, pedidlo, espero haberme explicado...
Muchas gracias por anticipado!!
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:58.