Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/07/2011, 12:14
_teseo_
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 8 meses
Puntos: 0
Problema con la Union de Consultas

Hola a todos, tengo un problemilla.

Tengo una web con base de datos en MySql. Tengo dos tablas para guardar los datos de los tests que realiza los usuarios en la web. Una contiene los tests realizados de un tipo, en concreto los que he bautizado como "tests del profesor" y la otra los llamados "tests aleatorios". En cada una de ellas se gurada el usuario que realiza el test, los errores, aciertos, puntuación, etc.. así como la fecha de realizacion.

Bien, lo que quiero hacer es una sección donde el usuario puede ver todos los tests que lleva hechos, sean del tipo que sean, ordenados por su fecha de realización. Para ello realizo una unión de consultas tal que así:

Código SQL:
Ver original
  1. SELECT fecha_test_aleatorio, id_test_aleatorio, aciertos_aleatorio
  2. FROM tests_aleatorios_hechos
  3. WHERE usuario_hace_test_aleatorio='$id_usuario'
  4. UNION
  5. SELECT fecha_test_profesor, id_test_profesor_hecho, aciertos_test_profesor
  6. FROM tests_profesor_hechos
  7. WHERE usuario_hace_test_profesor='$id_usuario'
  8. ORDER BY 1"

Luego al hacer el siguiente código php sobre la consulta anterior:

Código PHP:
while($fila=mysql_fetch_array($respuesta))
    {
        foreach(
$fila as $campo=>$valor)
        {
            echo 
$campo.": ".$valor."    -    ";
        }
        echo 
"<BR>";
    } 
Me sale lo siguiente:


0: 2011-07-20 17:50:02 - fecha_test_aleatorio: 2011-07-20 17:50:02 - 0: 73 - id_test_aleatorio: 73 - 1: 8 - aciertos_aleatorio: 8 -
0: 2011-07-20 18:16:45 - fecha_test_aleatorio: 2011-07-20 18:16:45 - 0: 74 - id_test_aleatorio: 74 - 1: 6 - aciertos_aleatorio: 6 -
0: 2011-07-20 18:19:26 - fecha_test_aleatorio: 2011-07-20 18:19:26 - 0: 75 - id_test_aleatorio: 75 - 1: 0 - aciertos_aleatorio: 0 -
0: 2011-07-20 18:40:14 - fecha_test_aleatorio: 2011-07-20 18:40:14 - 0: 76 - id_test_aleatorio: 76 - 1: 1 - aciertos_aleatorio: 1 -


Cuando lo que debería salir, o al menos lo que yo quiero que salga es:

fecha_test_aleatorio: 2011-07-20 17:50:02 - id_test_aleatorio: 73 - aciertos_aleatorio: 8 -
fecha_test_aleatorio: 2011-07-20 18:16:45 - id_test_aleatorio: 74 - aciertos_aleatorio: 6 -
fecha_test_profesor: 2011-07-20 18:19:26 - id_test_profesor_hecho: 75 - aciertos_test_profesor: 0 -
fecha_test_aleatorio: 2011-07-20 18:40:14 - id_test_aleatorio: 76 - aciertos_aleatorio: 1 -


Es decir, yo lo que quiero es que me coja los tests que ha realizado un usuario de ambas tablas, y las muestre ordenadas por su fecha, pero me devuelve filas donde salen las columnas duplicadas una con nombre numérico y la otra con el nombre siempre de la primera de las consultas de la union.

¿Qué estoy haciendo mal?

Gracias de antemano