PHP - Consulta SQL complicada... ayuda maestros...

   
Vista:

Consulta SQL complicada... ayuda maestros...

Publicado por Claudio (5 intervenciones) el 13/04/2008 23:15:44
Lo que intento hacer es una consulta relacional a mi BD a varias tablas

En la primer consulta lo que hago es mostrar el nombre del usuario...

En la segunda consulta lo que hago es mostrar de la tabla examen, la pregunta, la respuesta, lo que es correcto, lo que es incorrecto, y lo que respondio el usuario...

Bien, mi problema es el siguiente... como tengo varias respuestas para una sola pregunta, la consulta lo que me hace es traerme la pregunta, la respuesta, y demas...

y se me repepite asi:

Pregunta: Pregunta 8
Respuesta del usuario: Respuesta 1 de pregunta 8
Es Incorrecta

Pregunta: Pregunta 8
Respuesta del usuario: Respuesta 2 de pregunta 8
Es Incorrecta

Pregunta: Pregunta 7
Respuesta del usuario: Respuesta 1 de preg 1
Es Correcta

Pregunta: Pregunta 7
Respuesta del usuario: Otra respuesta para la 1
Es Correcta

Y lo que yo quiero es que se vea la pregunta, luego las respuestas a esa pregunta...

Y que no se me repita la pregunta varias veces.... si no... una sola vez cada pregunta...

Aqui posteo mi codigo...

[php]

include("../../../../include/conexion.php");
conectar();

$iduser= 1;
$consulta = mysql_query("SELECT DISTINCT e.iduser, a.nombre FROM examen e INNER JOIN alumno a ON e.iduser = a.iduser WHERE e.iduser = '$iduser' ORDER BY nombre ");
while ($row=mysql_fetch_array($consulta))
{

echo "".$row['nombre']."";

$con = mysql_query("SELECT p.pregunta, r.respuesta, e.correcta, e.usuario, e.fecha, e.iduser FROM examen e INNER JOIN respuestas r ON e.idrespuesta = r.idrespuesta INNER JOIN preguntas p ON p.idpregunta = r.idpregunta WHERE e.iduser=$iduser ");
$total_registros=mysql_num_rows($con);
while ($p = mysql_fetch_array($con))

{
echo "".$p['pregunta']."<br />";
echo "".$p['respuesta']."<br />";
if ($p['usuario']=="1") {
echo "Es Correcta";
} elseif ($p['usuario']=="0") {
echo "Es Incorrecta";
} else {
echo "No respondio";
}
}
}
desconectar();
?>
[/php]

Espero una ayudita de los maestros del php...

Graicas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta SQL complicada... ayuda maestros...

Publicado por Omar Yépez (224 intervenciones) el 14/04/2008 16:25:11
En el query SQL creo que no puedes hacer directamente lo que deseas...... Pero claro con PHP si lo puedes hacer:

Lo primero que tienes que hacer es declarar una variable auxiliar donde guardaras la pregunta actual, esta variable tiene que inicializarla null-

ý luego verificar si la pregunta actual es diferente a la anterior si es diferente escribes la pregunta si es igual escribes un espacio en blanco en HTML osea ' ', por ultimo asignar la pregunta actual a tu variable auxiliar para que funcione cada ciclo del WHILE

$auxPregunta = null;


while ($p = mysql_fetch_array($con))
{
echo ($p['pregunta'] != $auxPregunta) ? $p['pregunta'] : ' '; // espacio en blanco
$auxPregunta = $p['pregunta'];
/* hacer el resto de tu codigo */

}

Espero te sirva y si encontraste una forma mas facil seria bueno que la trasmitieras.......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar