Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizar campo de base de datos con ciclo FOR

Estas en el tema de Actualizar campo de base de datos con ciclo FOR en el foro de PHP en Foros del Web. Buenos días, 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 ...
  #1 (permalink)  
Antiguo 22/11/2018, 09:47
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 8
Actualizar campo de base de datos con ciclo FOR

Buenos días,

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";
    }
    
?>
pero el ejecutarlo me marca este error:

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.
  #2 (permalink)  
Antiguo 22/11/2018, 12:32
Avatar de javier0730  
Fecha de Ingreso: enero-2010
Ubicación: Jalisco
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: Actualizar campo de base de datos con ciclo FOR

Hola de nuevo.

Una disculpa pero el error era mio, en mi estructura de la tabla 'alumnos' el campo se llama 'evaluado' y en la consulta lo estaba queriendo insertar en la columan 'ya_evaluo' la cual no existe.
Corregi el nombre y funciono.

Gracias.

Etiquetas: campo, mysql, query, registro, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.