Perdón que intervenga, pero si el dato no llega o llega vacío, ni siquiera tiene sentido poner el campo en el INSERT INTO.
Código PHP:
Ver originalif(empty($_POST['sexo'])) { $sql = "INSERT INTO alumnos (nombre, apellidos)
VALUES ('$nombre', '$apellidos')";
} else {
$sql = "INSERT INTO alumnos (nombre, apellidos, sexo)
VALUES ('$nombre', '$apellidos', '$sexo')";
}
Como consejo práctico,
jamás crees la query en la llamada a MySQL, no es limpio y no permite realizar buenas depuraciones de código.