Foros del Web » Programando para Internet » PHP »

Contar elementos en un directorio

Estas en el tema de Contar elementos en un directorio en el foro de PHP en Foros del Web. Que tal, tengo un problema, estoy creando un directorio y necesito contar el numero de elementos que esten dentro de una categoria, un elemento puede ...
  #1 (permalink)  
Antiguo 17/03/2005, 18:43
 
Fecha de Ingreso: julio-2004
Ubicación: Quito
Mensajes: 123
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta Contar elementos en un directorio

Que tal, tengo un problema, estoy creando un directorio y necesito contar el numero de elementos que esten dentro de una categoria, un elemento puede estar registrado en varias categorias.

La estructura de la tabla de la categorias es:

- id (id de la categoria)
- pid (id de la categoria padre, usado para crear subcategorias)
- nombre (el nombre de la categoria)

El elemento contiene un campo para almacenar la categoria(s):
- categoria (contiene la id de las categorias en las que se listará, si es una sería: x si son 2 o mas sería: x|x2)

El problema es que no logro que todos los niveles de las categorias del directorio muestren el valor del numero de elementos que estan listados en la categoria, tengo echa la siguiente función (uso ADOdb Library)

Código PHP:
function contarNumeroArtistas($categoria)
{
    global 
$conn;
    
$num 0;    

    
$sql "SELECT *
            FROM categorias
            WHERE pid = $categoria"
;
    
$resultado $conn->Execute($sql);
    
$numResultados $resultado->NumRows();
    if(
$numResultados)
    {
        for(
$i=0$i<$numResultados$i++)
        {
            list(
$c_id$c_pid$c_nombre) = $resultado->fields;
            
            
$sql2 "SELECT categoria
                    FROM artista"
;
            
$resultado2 $conn->Execute($sql2);
            
$numResultados2 $resultado2->NumRows();
            if(
$numResultados2)
            {
                for(
$j=0$j<$numResultados2$j++)
                {
                    list(
$art_categoria) = $resultado2->fields;
                    
$categorias explode("|"$art_categoria);
                    for(
$k=0$k<count($categorias); $k++)
                    {
                        if(
$categorias[$k] == $c_id)
                            
$num++;    
                    }
                    
$resultado2->MoveNext();
                }
                
$resultado2->Close();
            }
            
$resultado->MoveNext();
        }
        
$resultado->Close();
    }
    
    
$sql2 "SELECT categoria
            FROM artista"
;
    
$resultado2 $conn->Execute($sql2);
    
$numResultados2 $resultado2->NumRows();
    if(
$numResultados2)
    {
        for(
$j=0$j<$numResultados2$j++)
        {
            list(
$art_categoria) = $resultado2->fields;
            
$categorias explode("|"$art_categoria);
            for(
$k=0$k<count($categorias); $k++)
            {
                if(
$categorias[$k] == $categoria)
                    
$num++;    
            }
            
$resultado2->MoveNext();
        }
        
$resultado2->Close();
    }

    return 
$num;


alguien tiene alguna idea para solucionarlo?

saludos

Última edición por netoec84; 17/03/2005 a las 19:05
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 18:50.