Como yo entendí es que si esta activado el checkbox entonces es una "F" de lo contrario es "D" ya sea por que no esta ese checkbox o por que no fué seleccionado.
Mira te dejo como yo creo que debería de funcionar, incluso te resumí algunas cosas para que no sea tanto codigo porque es algo tedioso.
Código PHP:
<?php
include ("conexion.php");
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
# post & checkbox
$nota3 = $_POST['nota3'];
$val = $_POST['val'];
$juicio = $_POST['juicio'];
$numChecks=14; // Cantidad de checks que tienes
/*La siguiente variable almacenará los datos de los checks que se insertaran en mysql, ej: c1='F', c2='D'...*/
$consultaChecks="";
for($x=1;$x<=$numChecks;$x++){
/*La siguiente sentencia crea una variable llamada $actual que almacena "F" o
"D" dependiendo del valor del check */
eval("\$actual=\$_POST[c".$x."]?'F':'D';");
if($consultaChecks)
$consultaChecks.=", c".$x."='".$actual."'";
else
$consultaChecks="c1='".$actual."'";
}
//Ahora $consultaChecks tiene el contenido de la consulta para los checks
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
# valoracion
// Aquí solo simplifique por si te gusta así o igual ponlo como tu lo tenias.
$val=($nota3!="" && $nota3<3.0)?
"bajo":
(
($nota3>=3.0 && $nota3<=3.6)?
"básico":
(
($nota3>=3.7 && $nota3<=4.3)?
"alto":
"superior"
)
);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
# update
$sql = "UPDATE SEXTO_A_MAT SET ".$consultaChecks.",
nota3='$nota3', val='$val' , juicio='$juicio'
WHERE id=1";
$result = mysql_query($sql);
mysql_close();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
echo "<center> datos insertados con exito </center>";
?>
Saludos