Ya di con el error: el bucle que te propuse no es el adecuado para la estructura del array de archivos que se genera.
Lo correcto es que hagas algo similar a lo que inicialmente hiciste, añadiendo la verificación en cada iteración de la correcta subida del archivo:
Código PHP:
Ver original$names = [];
$count = 0;
$i = 0;
for ($i = 0, $files = $_FILES['file'], $l = count($files['name']); $i < $l; $i++){ if ($files['error'][$i] == UPLOAD_ERR_OK){
$name = $files['name'][$i];
$temp = $files['tmp_name'][$i];
$type = $files['type'][$i];
$size = $files['size'][$i];
}
else continue; //Si el archivo no se sube correctamente, se pasa a la siguiente iteración
$names[$count] = $name;
$count++; //Se incrementa en uno cuando el archivo fue subido con éxito
//Otras instrucciones...
if ($count == 2) break; //Se termina el bucle cuando se hayan subido dos archivos
}
$query = "UPDATE alumnos SET img_a = '{$names[0]}', img_b = '{$names[1]}' WHERE ClEmail = '$email'";
La diferencia fundamental con lo que inicialmente hiciste radica en que intentaste acceder al array de los nombres de la manera inadecuada, además de que lo intentabas hacer dentro del bucle, cuando tiene que ser afuera de este. Le añadí una línea en la que se pasa a la siguiente iteración en el bucle en caso de no subirse correctamente el archivo.