Foros del Web » Programando para Internet » PHP »

Contador de secciones por categoria

Estas en el tema de Contador de secciones por categoria en el foro de PHP en Foros del Web. Buenos dias chicos. Aqui estoy de nuevo para pedir de su amable ayuda Veran, tengo un codigo que genera una lista de categorias y a ...
  #1 (permalink)  
Antiguo 01/05/2008, 09:46
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Contador de secciones por categoria

Buenos dias chicos.

Aqui estoy de nuevo para pedir de su amable ayuda

Veran, tengo un codigo que genera una lista de categorias y a la vez extrae las secciones de cada categoria, por ejemplo:

+ Juegos
- Estrenos
- De Coleccion
- De antaño
- Proyectos

+ Consolas
- NES
- SNES
- N64
- Wii
- PSP
- PS2

Mi duda es, como hago para que por medio de PHP, me "cuente" cuantas secciones hay por categoria, para que quede algo asi:

+ Juegos (4)
- NES
- SNES
- N64
- Wii

+ Consolas (6)
- NES
- SNES
- N64
- Wii
- PSP
- PS2

El codigo que lo imprime va asi:
Código PHP:
    function navigation($sel_subject$sel_page) {
        
$output "<ul class=\"subjects\">";
        
$subject_set get_all_subjects();
        while (
$subject mysql_fetch_array($subject_set)) {
            
$output .= "<li";
            if (
$subject["id"] == $sel_subject['id']) { $output .= " class=\"selected\""; }
            
$output .= "><a href=\"edit_subject.php?subj=" urlencode($subject["id"]) . 
                
"\">{$subject["menu_name"]}</a> (33)</li>";
            
$page_set get_pages_for_subject($subject["id"]);
            
$output .= "<ul class=\"pages\">";
            while (
$page mysql_fetch_array($page_set)) {
                
$output .= "<li";
                if (
$page["id"] == $sel_page['id']) { $output .= " class=\"selected\""; }
                
$output .= "><a href=\"content.php?page=" urlencode($page["id"]) .
                    
"\">{$page["menu_name"]}</a></li>";
            }
            
$output .= "</ul>";
        }
        
$output .= "</ul>";
        return 
$output;
    } 
De verdad agradecere mucho su ayuda.

Espero estar de vuelta mas seguido ahora que retome mi "carrera" de programadora jijiji

Mil Gracias !!!

Última edición por JessicaTJ; 01/05/2008 a las 12:35
  #2 (permalink)  
Antiguo 06/05/2008, 14:45
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Re: Contador de secciones por categoria

Alguna idea chicos?
  #3 (permalink)  
Antiguo 28/06/2008, 15:43
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Contador de secciones por categoria

Ninguna idea?
  #4 (permalink)  
Antiguo 28/06/2008, 15:50
 
Fecha de Ingreso: febrero-2007
Ubicación: Panamá
Mensajes: 50
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Contador de secciones por categoria

No entiendo si solo quieres mostrar el numero de datos grabados en la DB. Si es eso deberias fijarte de la funcion mysql_num_rows(); propia de PHP que devuelve el numero de filas de un resultado.

Si no es eso avisa para poder ayudarte mas a fondo y ver el codigo mas a profundidad.
Saludos!
  #5 (permalink)  
Antiguo 28/06/2008, 17:07
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Contador de secciones por categoria

Sipis, que me de, si yo tengo esto:

+ Juegos
- NES
- SNES
- N64
- Wii

Siendo Juegos la categoria padre, que me despliegue que Juegos contiene 4 subcategorias, quedando asi

+ Juegos (4)
- NES
- SNES
- N64
- Wii

Y asi con las demas categorias padre.

El codigo que utiliza para imprimir las categorias padre y subcategorias es este:
Código PHP:
    function navigation($sel_subject$sel_page) {
        
$output "<ul class=\"subjects\">";
        
$subject_set get_all_subjects();
        while (
$subject mysql_fetch_array($subject_set)) {
            
$output .= "<li";
            if (
$subject["id"] == $sel_subject['id']) { $output .= " class=\"selected\""; }
            
$output .= "><a href=\"edit_subject.php?subj=" urlencode($subject["id"]) . 
                
"\">{$subject["menu_name"]}</a> (33)</li>";
            
$page_set get_pages_for_subject($subject["id"]);
            
$output .= "<ul class=\"pages\">";
            while (
$page mysql_fetch_array($page_set)) {
                
$output .= "<li";
                if (
$page["id"] == $sel_page['id']) { $output .= " class=\"selected\""; }
                
$output .= "><a href=\"content.php?page=" urlencode($page["id"]) .
                    
"\">{$page["menu_name"]}</a></li>";
            }
            
$output .= "</ul>";
        }
        
$output .= "</ul>";
        return 
$output;
    } 
De verdad voy a agradecerte muchisimo tu ayuda !!!

Última edición por JessicaTJ; 28/06/2008 a las 17:15
  #6 (permalink)  
Antiguo 28/06/2008, 19:02
 
Fecha de Ingreso: febrero-2007
Ubicación: Panamá
Mensajes: 50
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Contador de secciones por categoria

Pues si solo necesitas contar el numero de datos, como ya te dije debes usar la funcion propia de PHP mysql_num_rows(); No se que pasaras a la funcion en $sel_subject y $sel_page ni mucho menos que haces con get_all_subjects(); asi que ya lo haras tu, si has hecho ese codigo lo que hace falta es mucho mas facil.

Saludos
  #7 (permalink)  
Antiguo 28/06/2008, 19:25
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 17 años, 5 meses
Puntos: 59
Respuesta: Contador de secciones por categoria

Hola JessicaTJ, como te dice demogar, puedes usar la función mysql_num_rows() que te develve el número de filas afectadas, es decir después de hacer tu query a las categorías si usas esta función te dirá cuantos registros hay en cada categoría.

También podrías usar la función count() revisala.

Saludos.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #8 (permalink)  
Antiguo 28/06/2008, 19:31
 
Fecha de Ingreso: junio-2008
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Contador de secciones por categoria

si, por lo q veo es mysql_num_rows($page_set) o sino hace una consulta que sea
SELECT count(id) as id FROM categorias WHERE id_padre = 4 ..
algo asi
Salu2
  #9 (permalink)  
Antiguo 29/06/2008, 20:20
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Contador de secciones por categoria

Alguien me podria explicar como acomodar el codigo para que lo hiciera por plis?

Ya intente pero nu me da resultados, perdon, soy algo novata en esto.

Mil gracias !!!
  #10 (permalink)  
Antiguo 29/06/2008, 22:32
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Contador de secciones por categoria

Hi !

Es como te han dicho utiliza antes que nada un "mysql_num_rows()" antes de utilizar la función y luego le pasas una variable con el numero de registros a la función que te paso ahora:
Código PHP:
<?php
    
function navigation($sel_subject$sel_page$num_sub) {
        
$output "<ul class=\"subjects\">";
        
$subject_set get_all_subjects();
        while (
$subject mysql_fetch_array($subject_set)) {
            
$output .= "<li";
            if (
$subject["id"] == $sel_subject['id']) { $output .= " class=\"selected\""; }
            
$output .= "><a href=\"edit_subject.php?subj=" urlencode($subject["id"]) . 
                
"\">{$subject["menu_name"]}</a>";
                if (
$numb_sub != 0) {
                    
$output .= " (".$num_sub.")</li>";
                }else{
                    
$output .= " </li>";
                }
            
$page_set get_pages_for_subject($subject["id"]);
            
$output .= "<ul class=\"pages\">";
            while (
$page mysql_fetch_array($page_set)) {
                
$output .= "<li";
                if (
$page["id"] == $sel_page['id']) { $output .= " class=\"selected\""; }
                
$output .= "><a href=\"content.php?page=" urlencode($page["id"]) .
                    
"\">{$page["menu_name"]}</a></li>";
            }
            
$output .= "</ul>";
        }
        
$output .= "</ul>";
        return 
$output;
    } 
?>
Ahora la función tiene un 3° parametro, que es el numero, tu le pasas el resultado del MYSQL_NUM_ROWS(), si es 0 No se muestra si es diferente muestra el numero entre parentesis.

Espero te sea util.

-ByE-
__________________
--
Mi Portfolio Online! Visitalo!
--
  #11 (permalink)  
Antiguo 21/01/2009, 20:53
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 10 meses
Puntos: 25
Respuesta: Contador de secciones por categoria

Mil gracias chicos por todas sus respuestas, hare lo que me dicen y les aviso que sucede
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 14:44.