Problema con consulta SQL

Estoy haciendo un sitio web de una empresa de vigilancia que desea consultar las personas que han hecho cursos, que se puedan añadir, borrar y modificar los registros a través de una interfaz web. Voy por partes, ya cree la bd con 2 tablas: graduados y estudiantes la primera tiene la información de los cursos que los estudiantes han hecho, la segunda solo la cedula y nombre de los estudiantes. Ya tengo funcionando la consulta por numero de cedula. Pero cuando hay varios registros de cursos que ha hecho un mismo estudiante solo me muestra uno solo registro como resultado. ¿Cómo puedo hacer para que la consulta muestre todos los cursos que ha hecho un solo estudiante?

Respuesta
1

Si haces un join entre ambas tablas te debería mostrar todos los registros

Gracias por su pronta respuesta experto, he cambiado la situación ahora solo uso una sola tabla "graduados" que tiene COD, CEDULA, NOMBRE, CURSO,NRI, NRO, FINI, FFIN esta tabla guarda la información de los estudiantes que han hecho cursos tengo 5 registros (dos registros del estudiante con cedula 111, dos registros con el estudiante con cedula 222 y un registro del estudiante con cedula 333), este es el código funciona bien solo que si busco la cedula 111 o 222 solo me muestra un registro cuando debería mostrarme dos: el numero de cedula para hacer la consulta se obtiene de un formulario y se almacena en la variable $cedula.

$sql = "SELECT * FROM graduados WHERE graduados.cedula= '$cedula' ORDER BY fini";
// Ejecutamos la consulta sobre la conexión creada
$rs = mysql_query($sql,$conexión);
// Controlamos si se produce un error SQL
if (mysql_error() != ''){
echo "Se ha producido el error ".mysql_errno()." ".mysql_error();
}
// Pasamos los valores del Conjunto de Registros devuelto a un array asociativo
$campos = mysql_fetch_array($rs);
// Mostramos el contenido de los campos
echo "LA CEDULA: ".$campos['cedula']." CORRESPONDE A: <br>";
echo "<br>";
echo "Nombre: ".$campos['nombre']."<br>";
echo "Curso: ".$campos['curso']."<br>";
echo "NRI: ".$campos['nri']."<br>";
echo "NRO: ".$campos['nro']."<br>";
echo "Fecha Inicio: ".$campos['fini']."<br>";
echo "Fecha Fin: ".$campos['ffin']."<br>";
echo "---------------------------------------";
// Cerramos la conexión
mysql_close($conexión);
?>

Mysql_fetch_array devuelve la siguiente fila, deberías usarla dentro de un loop...

1 respuesta más de otro experto

Respuesta
1

Haber si lo he entendido

Tienes Dos tablas

Graduados : Cursos que los estudiantes han hecho, campos (id, id_estudiante, curso)

Estudiantes: Nombre de los estudiantes, (id_estudiante, nombre)

Por el nombre del estudiante:

select * form Graduados join Estudiantes on Graduados.id_estudiante=Estudiantes.id_estudiante where Estudiantes.nombre = $variable_nombre

si tienes el id del estudiante:

select * form Graduados where Graduados.id_estudiante=$variable_id

Espero que te vaya bien www.girweb.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas