Foros del Web » Programando para Internet » PHP »

repetición de registros

Estas en el tema de repetición de registros en el foro de PHP en Foros del Web. Hola a tod@s. Estoy con una web dedicada en gran parte a mostrar imágenes. Tengo un problema que quizá sea muy sencillo de solucionar pero ...
  #1 (permalink)  
Antiguo 27/06/2008, 08:51
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
repetición de registros

Hola a tod@s. Estoy con una web dedicada en gran parte a mostrar imágenes.
Tengo un problema que quizá sea muy sencillo de solucionar pero me está dando muchos quebraderos de cabeza.

Tengo una sección en el menú llamada "Campeonatos" y en ella se abre un submenú con los años y cada año tiene otro submenú con el nombre de los campeonatos de ese año. El problema es que si hay más de un campeonato en el mismo año, el año aparece repetido.

Podeis verlo aquí:

http://www.tkdimages.es/nueva/campeonatos.php

El caso es que tengo unas 400 lineas de código en esa página y no se si ponerlo aqui porque es un follón.

Ojalá podais ayudarme. Gracias
  #2 (permalink)  
Antiguo 27/06/2008, 09:00
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: repetición de registros

podrias mostrar tu codigo en donde extraes esa info?? y la consulta del query??
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 27/06/2008, 09:05
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: repetición de registros

Código PHP:
<?php                
$cont 
0;
$sql="SELECT fecha FROM campeonatos";
$res=mysql_query($sql,$c);
while(
$registro=mysql_fetch_array($res))
{    
    
$cont ++;
    
$este_anio explode("-",$registro['fecha']);
    if (
$anio == $este_anio[0])
    {
        if (
$cont == 1)
            echo 
"<center><hr id='hr1' /></center><ol id='seleccionado2'>&nbsp;&nbsp;&nbsp;&nbsp;".$este_anio[0]."</ol>";
        else
            echo 
"<hr id='hr2' /><ol id='seleccionado2'>&nbsp;&nbsp;&nbsp;&nbsp;".$este_anio[0]."</ol>";
    }    
    else
    {
        if (
$cont == 1)
            echo 
"<center><hr id='hr1' /></center><ol><a href='".$_SERVER['PHP_SELF']."?anio=".$este_anio[0]."' />&nbsp;&nbsp;&nbsp;&nbsp;".$este_anio[0]."</a></ol>";
        else
                echo 
"<hr id='hr2' /><ol><a href='".$_SERVER['PHP_SELF']."?anio=".$este_anio[0]."' />&nbsp;&nbsp;&nbsp;&nbsp;".$este_anio[0]."</a></ol>";
    }
}
                        
?>
  #4 (permalink)  
Antiguo 27/06/2008, 09:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: repetición de registros

Hola frasko01,

Usa DISTINCT en tu query:
Código:
SELECT DISTINCT fecha FROM campeonatos
Saludos.
  #5 (permalink)  
Antiguo 27/06/2008, 09:27
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: repetición de registros

Gracias GatorV pero creo que así no puede ser porque necesito que muestre el año solo una vez, aunque se repita mil veces. Y si uso DISTINCT no me mostraria ese año en el submenú.

¿Alguna otra idea? Gracias a todos.

Saludos
  #6 (permalink)  
Antiguo 27/06/2008, 09:44
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: repetición de registros

mmmmmmmmmmmmmmm eso es lo q pasa... si tu año se esta repitiendo... pq no agrupas por años con un GROUP BY???
corrijanme si me equivoco!!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #7 (permalink)  
Antiguo 27/06/2008, 09:45
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: repetición de registros

Disculpad mi ignorancia, GatorV tenía razón pero debería ser algo así:

SELECT DISTINCT YEAR (fecha) FROM campeonatos

pero esto no funciona, alguien sabría solucionarlo?
  #8 (permalink)  
Antiguo 27/06/2008, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: repetición de registros

¿Te da algún error ese query?

Saludos.
  #9 (permalink)  
Antiguo 27/06/2008, 09:50
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: repetición de registros

No me da ningún error, simplemente no me muestra los años.
  #10 (permalink)  
Antiguo 27/06/2008, 10:28
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: repetición de registros

Gracias a todos. Por fin he conseguido arreglarlo.
Hasta otra
  #11 (permalink)  
Antiguo 27/06/2008, 10:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: repetición de registros

Hola frasko01,

Si encuentras la solución es recomendable que expliques tu solución por si alguien se encuentra con el mismo problema.

Saludos.
  #12 (permalink)  
Antiguo 28/06/2008, 09:38
Avatar de frasko01  
Fecha de Ingreso: junio-2008
Mensajes: 200
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: repetición de registros

Tan solo devía añadirle al query un "AS" tal que así:

SELECT DISTINCT YEAR (fecha) AS fecha FROM campeonatos

y arreglado.

Saludos.
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:12.