Foros del Web » Programando para Internet » PHP »

problema para restringir resultados.mysql

Estas en el tema de problema para restringir resultados.mysql en el foro de PHP en Foros del Web. Buenas tardes, tengo un problemita para restringir resultados en una consulta a la DB, son registros de usuario con un campo "promocion" y otro "letra" ...
  #1 (permalink)  
Antiguo 27/06/2008, 17:52
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta problema para restringir resultados.mysql

Buenas tardes, tengo un problemita para restringir resultados en una consulta a la DB, son registros de usuario con un campo "promocion" y otro "letra" y necesito listar por año los cursos cuando existen o sea cuando hay un usuarios registrados de año xxx y de curso A,B,C,D...debe aparecer :

año: A,B,C..... pero sin repetirse las letras y no logro que no se me repitan

éste es el codigo..muy rudimentario pero se agradece cualquier ayuda.

Gracias.

<?


$query="SELECT DISTINCT promocion FROM usuarios order by promocion";
$exalumnos=mysql_query($query);
while ($row=mysql_fetch_array($exalumnos))
{
echo "".$row["promocion"].":&nbsp;";


$query2="SELECT * FROM usuarios order by `letra` asc";
$titulo2=mysql_query($query2);
while ($row2=mysql_fetch_array($titulo2))
{ //echo "".$row2["letra"]."";

if ( $row["promocion"]==$row2["promocion"] )

{

echo $row2["letra"]." " ;

}


}
echo"<br>" ;
}


?>

y me entrega:

1951: A
1960: A
1961: G
1966: A A C
1969: F
1970: D F G G G
1971: A
1972: F F H
1973: C C D
1974: A E K
1976: A E H J L
1977: C E H J O O
1978: A A C G J
1979: K
1980: A C K N N
1981: B C I I
1982: J J
1983: A H I I O O
1984: I J L M Ñ
1985: A C F F F K
1986: B K Ñ
1987: C E F F F H H L N Ñ N
1988: A A A B B C D E F F G G I I I I I I I I I K K
1989: D D J K K L
1990: A G G G K
1991: B H H K K N
1992: A A C D H H J K M O
1993: B C D E F G K K K
1994: A D E G K L
1995: E H K
1996: A C C E H H K L O P
1997: I J
1998: B D E J
1999: C D N
2000: M O
2001: L O
2002: A C E H P
2003: F Ñ
2005: C
2006: A N
2008: M

o sea me repite las letras cuando hay un usuario de el año en cuestión.

No se me ocurre como hacerlo , he probado con algunos IF pero no he llegado a nada :/

Gracias
  #2 (permalink)  
Antiguo 27/06/2008, 22:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: problema para restringir resultados.mysql

Prueba hacer un query similar a tu primera consulta:
Código PHP:
$query "SELECT DISTINCT `letra` FROM usuarios WHERE `promocion`='" $row['promocion'".' order by `letra` asc" 
Saludos.
  #3 (permalink)  
Antiguo 27/06/2008, 22:52
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problema para restringir resultados.mysql

ya habia probado algo similar , pero no me resulta :( , alguien sabria como dejar el resultado como "array" y así luego aplicar esto que encontré para filtrar una array.

1.
function limpiarRepetidos($arreglo){
2.
$limpia = array($arreglo[0]);
3.
for($i=0; $i<count($arreglo); $i++){
4.
$existeElDato=false;
5.
for($j=0; $j<count($limpia) and !$existeElDato; $j++){
6.
if($arreglo[$i] == $limpia[$j]){
7.
$existeElDato=true;
8.
}
9.
}
10.
if($existeElDato==false){
11.
$limpia[]=$arreglo[$i];
12.
}
13.
}
14.
return ($limpia);
15.
}


sorry si son tonteras las que pregunto pero realmente no se como llegar al resultado que quiero :/
  #4 (permalink)  
Antiguo 28/06/2008, 10:40
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problema para restringir resultados.mysql

tenias toda la razon! :D , le metí una variable mas entremedio eso si y resulto perfecto! muchas gracias!


desabilite el filtro "if" y con DISTINCT funciono exelente!


$query="SELECT DISTINCT promocion FROM usuarios order by promocion";
$exalumnos=mysql_query($query);
while ($row=mysql_fetch_array($exalumnos))
{
echo "".$row["promocion"].":&nbsp;";
$ano=$row["promocion"];

$query2="SELECT DISTINCT letra FROM usuarios WHERE promocion=$ano order by `letra` asc";
$titulo2=mysql_query($query2);
while ($row2=mysql_fetch_array($titulo2))
{ //echo "".$row2["letra"]."";

//if ( $row["promocion"]==$row2["promocion"] )

//{

echo $row2["letra"]." " ;

//}


}
echo"<br>" ;
}
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:16.