Estoy trabajando con una aplicación para que los alumnos evalúen a sus maestros que les imparten clase y me vi en la necesidad de agregar un campo en mi tabla 'alumnos' para colocar una etiqueta de si ya evaluó o aun no, pero como ya tengo registros necesito hacer un UPDATE a todos aquellos que ya realizaron la evaluación.
Tengo la tabla llamada 'respuestas' en la que aparece la matricula del alumno, los datos de la materia y las respuestas, ademas de un campo de tipo DATETIME llamado `fecha_evaluacion` que por default tiene 0000-00-00 00:00:00. Entonces una vez que el alumno evalúa este campo llamado `fecha_evaluacion` tendrá la fecha y hora en la que se realizo la evaluación.
Siendo así, lo que pensé fue en hacer un SELECT a la tabla `respuestas` para obtener las matriculas que tienen fecha diferente a la de default. (NOTA: Hago un SELECT DISTINCT ya que por cada materia habrá un registro, por ejemplo si el alumno lleva 5 materias tendremos 5 registros en la tabla, y a mi me interesa que al menos haya evaluado una). Posteriormente inserto en la tabla 'alumnos' el texto 'SI' en el campo 'ya_evaluo'
Quedando así el código:
Código PHP:
<?php
# Buscar en la base de datos los registro que tienen fecha diferente a la de DEFAULT
$consulta = "SELECT DISTINCT `matricula` FROM `respuestas` WHERE `fecha_evaluacion` != '0000-00-00 00:00:00' ";
$resultado = $conexion->query($consulta);
// Para imprimir los datos. El bucle recorre todos los registros.
while($fila = $resultado->fetch_assoc())
{
# Guardar la matricula del alumno en la variable
$matricula_ya_evaluo = $fila['matricula'];
$poner_si = "SI";
# Colocar el valor SI en el campo 'evaluado' de la tabla 'alumnos' a
$accion_nm = "UPDATE `alumnos` SET `ya_evaluo` = '$poner_si' WHERE `matricula` = '$matricula_ya_evaluo' ";
$consulta_nm = mysqli_query($conexion,$accion_nm) or die(mysqli_error());
echo "<br />El alumno con matricula ".$matricula_ya_evaluo." ya realizo la evaluación de al menos una materia";
}
?>
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /opt/lampp/htdocs/evaluacion-2018-2019-1/inserta_SI.php on line 191
No se cual es el error, ya que si quito las filas del UPDATE, la impresion de las matriculas que tengo en el echo me salen correctamente, así que la matricula del alumno si se esta almacenando correctamente en la variable $matricula_ya_evaluo y el ciclo While esta recorriendo correctamente la tabla.
Espero me ayuden, muchas gracias.
Javier0730.