Indicar VALUES es para indicar los nombres de los campos de la tabla unicamente, y no es necesario, o al menos yo jamas lo uso. El Where va despues de los SET. Y ahi ves como se usa el SET, dando un valor a cada campo. Prueba y me dices si funciona
Código PHP:
$result2 = mysql_query ("UPDATE horarios WHERE fecha = '$_POST[fecha]' SET
mincha='$_POST[mincha]', shajrit='$_POST[shajrit]', shiur='$_POST[shiur]',
minja='$_POST[minja]' WHERE fecha = '$_POST[fecha]' ");
Saludos y buen karma