Foros del Web » Programando para Internet » PHP »

Listado de categorías y foros

Estas en el tema de Listado de categorías y foros en el foro de PHP en Foros del Web. Buenas, estoy desarrollando un foro para la nueva versión de mi web y quiero hacer una lista (Select) que sea de este tipo: Nombre de ...
  #1 (permalink)  
Antiguo 06/12/2008, 08:56
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 4 meses
Puntos: 6
Listado de categorías y foros

Buenas, estoy desarrollando un foro para la nueva versión de mi web y quiero hacer una lista (Select) que sea de este tipo:

Nombre de la categoría
Foro perteneciente 1
Foro perteneciente 2
Foro perteneciente 3
Foro perteneciente 4
Nombre de la categoría 2
Foro perteneciente 1
Foro perteneciente 2
Foro perteneciente 3
Foro perteneciente 4

etc ...

Tengo los foros en una tabla y las categorías en otra.

Si hago una consulta y luego los muestro:

Código PHP:
<?php
$q
->exec("SELECT foros_foros.id, foros_foros.categoria, foros_foros.nombre AS fname, foros_categorias.nombre AS cname FROM foros_foros INNER JOIN foros_categorias ON foros_categorias.id = foros_foros.categoria");
for(
$i 0$i $q->numrows$i++){
    echo 
'<option value="" style="font-weight:bold;">'.$q->data["cname"].'</option>';
    echo 
'<option value="">'.$q->data["fname"].'</option>';
$q->nxt();
}
?>
Se repetiría la categoria en cada foro.

Es decir:

Nombre de la categoría
Foro perteneciente 1
Nombre de la categoría
Foro perteneciente 2
Nombre de la categoría
Foro perteneciente 3
Nombre de la categoría
Foro perteneciente 4

¿Cómo lo hariais?

Seguramente sepa hacerlo pero ahora no se me ocurre nada.

Un saludo.
  #2 (permalink)  
Antiguo 06/12/2008, 09:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Listado de categorías y foros

Yo lo haria de la siguiente manera:

Código PHP:
<?php
//conexion a la bd, blah blah blah
//digamos que nuestra variable categoria es $row['categoria'];
while($row mysql_fetch_assoc($query)
{
    if(
$categoria_anterior != $row['categoria']) {
        
//imprimo el nombre de la categoria
    
}
    
//imprimo las subcategorias
    //y hago mi variable categoria_anterior = $row['categoria'] antes de pasar a la proxima iteracion del bucle
    
$categoria_anterior $row['categoria'];
}
?>
NOTA*: Ese codigo funciona siempre y cuando estes ordenando tu consulta por CATEGORIAS, de lo contrario no funcionara correctamente.
  #3 (permalink)  
Antiguo 06/12/2008, 09:36
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Listado de categorías y foros

pedro

estoy completamente de acuerdo con la solucion que expone Ronruby, la solucion es mantener el valor de categoria siempre en una variable que se actualiza por cada iteraccion , luego pregunta si todavia es la misma, si lo es no la imprime de lo contrario la imprime.

el codigo completo seria

Código PHP:
<?php
$q
->exec("SELECT foros_foros.id, foros_foros.categoria, foros_foros.nombre AS fname, foros_categorias.nombre AS cname FROM foros_foros INNER JOIN foros_categorias ON foros_categorias.id = foros_foros.categoria");

for(
$i 0$i $q->numrows$i++)
{
    if(
$categoria_anterior != $q->data["cname"]) 
    echo 
'<option value="" style="font-weight:bold;">'.$q->data["cname"].'</option>';
     echo 
'<option value="">'.$q->data["fname"].'</option>';
    
$categoria_anterior trim($q->data["cname"]);
$q->nxt();
}
?>
  #4 (permalink)  
Antiguo 06/12/2008, 09:47
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Listado de categorías y foros

Ok, gracias a los dos.

Y charlyrosero, disculpa, pero, ¿trim no es para eliminar espacios en blanco de una cadena?

¿Para que lo utilizas ahí?

Un saludo
  #5 (permalink)  
Antiguo 06/12/2008, 09:54
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 8 meses
Puntos: 5
Respuesta: Listado de categorías y foros

pedro, por mi experiencia siempre lo utilizo cuando hago comparativos entre cadenas.... claro que es optativo pero siempre lo recomiendo
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 00:39.