Registros iguales en base de datos.

Hola experto
Como le hago para validar una base de datos en PHP, es decir que estoy haciendo una base de datos que almacena registros de alumnos(Una escuela de secundaria. El problema que tengo es cunado agrego un registro, ose a un nombre de alumno parecido o igual a otro, la base de datos lo acepta. Y lo que yo no quiero es que me acepte registros iguales.
Por ejemplo: si ingreso un alumno llamado Juan Lopez, y si hay otro registro igual que mande un mensaje que ya existe el registro; y por cual que no deje ingresarlo.
Como puedo hacer esto...
Por favor ayudame con la lógica: un algoritmo o código.
gracias... Espero tu respuesta.

1 respuesta

Respuesta
1
En una base de datos pueden existir dos alumnos que se llamen y apelliden igual, no sería la primera vez que ocurre. Por tanto, no es conveniente no aceptar registros iguales. Lo conveniente sería darle a cada alumno un número, por ejemplo el dni o el número de matrícula y hacer que este campo sí fuese único.
Imagina dos alumnos que se llamen Juan Lopez. Cuando vas a ingresarlo en la base de datos, el primero lo almacena bien, pero el segundo diría que ya existe un Juan Lopez. Para que esto no suceda al primero le tendrías que asignar un número como por ejemplo 32_20050301 (32 es el número de alumnos registrados el año 2005, mes 03 y día 01) y al segundo le asignas otro número: 33_20050301. Puede tener incluso letras o cualquier combinación que se te ocurra y de la longitud que quieras siempre y cuando asegures que va a ser único.
En muchos casos, si pones ese campo como único al crear la base de datos y además le dices que aumente de forma automática al insertar un nuevo registro, aseguras que siempre va a ser único. Comenzará por 1 y seguirá por 2, 3, ...
Al insertar un alumno en la base de datos no tienes que poner el campo de código porque ya lo pone solo de forma automática, sí tienes que obtenerlo. Haciendo otra consulta. Por ejemplo al insertar usas:
$consulta = "INSERT INTO Alumnos (nombre, apellido) VALUES ('Juan', 'Lopez')";
$resultado = mysql_query($consulta);
if ($resultado) {
$consultaCod = "SELECT Codigo FROM Alumnos WHERE nombre='Juan' AND apellido='Lopez' ORDER BY Codigo DESC";
$resultado = mysql_query($consultaCod);
echo "Codigo del alumno: " . mysql_result($resultado, 0, 0);
} else {
echo "Error: no se puede registrar ese alumno.";
}
Espero que te sirva. Si no es exactamente eso lo que quieres me lo dices.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas