Во-первых. Нафига столько SET NAMES, причем противоречащих друг другу? Это делается только один раз, в начале скрипта!
Во-вторых, вам, батенька, недурно бы научиться осмысленно называть переменные. А не $u1, $u2. Код нечитабелен!
В-третьих, имена элементов именованного массива берутся в кавычки.
Пример: $u2['ARMOR']. Это не критичная ошибка, но замедляет исполнение кода (интерпретатор сначала будет искать константу с именем ARMOR, а только потом поймет что это строка) . И ухудшает читабельность. Если в настройках пхп поставить error_reporting E_ALL - вывалится море ошибок уровня Notice.
В-четвертых, задавая вопрос о запросе к БД, недурно бы предоставлять дамп структуры используемых таблиц.
В пятых, сложение переменных можно производить прямо в запросе UPDATE, не делая лишних селектов. Учись пользоваться оператором JOIN и оперированием несколькими таблицами в одном запросе.
ВЕРДИКТ: Почистить код, привести его к читабельному виду и повторить вопрос. А может быть, и вопрос задавать не потребуется, потому что сразу все станет и так видно.