Resultados de tablas relacionadas con y sin equivalenc
Hola, estoy intentando hacer lo siguiente en mysql y php, donde los alumnos le hacen preguntas a los profesores, tengo 4 tablas:
********************
# tabla_profesores |
--------------------
| id| nombre_prof |
--------------------
| 1 | andrea |
| 2 | diana |
| 3 | carolina |
********************
*******************
# tabla_alumnos |
-------------------
| id| nombre_alum |
-------------------
| 1 | luis |
| 2 | carlos |
| 3 | antonio |
*******************
******************************
# tabla_preguntas |
------------------------------
| id | IDalumno | pregunta |
------------------------------
| 1 | 3 | pregunta a |
| 2 | 1 | pregunta b |
| 3 | 3 | pregunta c |
| 4 | 3 | pregunta d |
******************************
************************************
# tabla_respuestas |
------------------------------------
| id| IDdelapregunta | respuesta |
------------------------------------
| 1 | 1 | respuesta a |
| 2 | 3 | respuesta c |
************************************
Quiero que php me muestre:
01. Todas las preguntas que ha realizado el alumno 3 (antonio).
02. Y a la vez quiero que a las preguntas que ya fueron respondidas les aparezca su respectiva respuesta
03. Y también quiero que las preguntas que no han sido respondidas aparezcan también en el listado con algo que diga "no han respondido tu pregunta".
Yo realicé la siguiente consulta pero el problema es que solo me muestra las preguntas que si tienen respuesta y las otras no me las muestra:
<?php
$resultado = mysql_query("
SELECT * FROM tabla_preguntas, tabla_alumnos, tabla_respuestas
WHERE tabla_preguntas.IDalumno = '3'
AND tabla_preguntas.IDalumno = tabla_alumnos.id
AND tabla_preguntas.id = tabla_respuestas.IDdelapregunta
",$conexion);
while ($datos = mysql_fetch_array($resultado)) {
?>
<table>
<tr>
<td><?php echo $datos['pregunta']; ?></td>
</tr>
<tr>
<td><?php echo $datos['respuesta']; ?></td>
</tr>
</table>
<?php
}
?>
Ayúdeme por favor a encontrar una solución para lo que quiero hacer, de antemano gracias por la colaboración.
********************
# tabla_profesores |
--------------------
| id| nombre_prof |
--------------------
| 1 | andrea |
| 2 | diana |
| 3 | carolina |
********************
*******************
# tabla_alumnos |
-------------------
| id| nombre_alum |
-------------------
| 1 | luis |
| 2 | carlos |
| 3 | antonio |
*******************
******************************
# tabla_preguntas |
------------------------------
| id | IDalumno | pregunta |
------------------------------
| 1 | 3 | pregunta a |
| 2 | 1 | pregunta b |
| 3 | 3 | pregunta c |
| 4 | 3 | pregunta d |
******************************
************************************
# tabla_respuestas |
------------------------------------
| id| IDdelapregunta | respuesta |
------------------------------------
| 1 | 1 | respuesta a |
| 2 | 3 | respuesta c |
************************************
Quiero que php me muestre:
01. Todas las preguntas que ha realizado el alumno 3 (antonio).
02. Y a la vez quiero que a las preguntas que ya fueron respondidas les aparezca su respectiva respuesta
03. Y también quiero que las preguntas que no han sido respondidas aparezcan también en el listado con algo que diga "no han respondido tu pregunta".
Yo realicé la siguiente consulta pero el problema es que solo me muestra las preguntas que si tienen respuesta y las otras no me las muestra:
<?php
$resultado = mysql_query("
SELECT * FROM tabla_preguntas, tabla_alumnos, tabla_respuestas
WHERE tabla_preguntas.IDalumno = '3'
AND tabla_preguntas.IDalumno = tabla_alumnos.id
AND tabla_preguntas.id = tabla_respuestas.IDdelapregunta
",$conexion);
while ($datos = mysql_fetch_array($resultado)) {
?>
<table>
<tr>
<td><?php echo $datos['pregunta']; ?></td>
</tr>
<tr>
<td><?php echo $datos['respuesta']; ?></td>
</tr>
</table>
<?php
}
?>
Ayúdeme por favor a encontrar una solución para lo que quiero hacer, de antemano gracias por la colaboración.
1 respuesta
Respuesta de yescuder
1