Тестировали ли вы запросы на самом деле с теми значениями, которые вы им даете? т. е. использовать phpMyAdmin или аналогичный и попытаться выполнить запрос вручную?
У меня были ситуации, когда я думал, что мой PHP неверен, но проблема была в маленькой ошибке в SQL.
Вы также можете установить режим ошибок PHP на E_ALL. Вы можете сделать это в php.ini или через код, набрав
ini_set("display_errors","2"); ERROR_REPORTING(E_ALL);
в начале вашего скрипта. Он должен [надеюсь] дать вам ошибку, которая идентифицирует вашу проблему.
EDIT
Я только что заметил кое-что с вашими условиями, которое может быть проблемой ...
У вас есть:
if (!$playerLEVEL ==13)
{
levelUPSTATS ();
$playerLEVEL = 13;
//etc
}
Я скорее подозреваю, что если блок никогда не будет запущен и не будет никакого вызова levelUPSTATS ().
Вы спрашиваете , если NOT $ playerLEVEL равен EQUAL на 13 , когда вы действительно хотите , если $ playerLEVEL НЕ равно EQUAL на 13 , что делает условие:
if($playerLEVEL != 13)
Обратите внимание, куда идет ! (НЕ).
Кроме того, у вас есть ситуация с вашими неравенствами, когда определенные крайние случаи означают, что у игрока два уровня.
Например, для уровня 2 вам нужно от 100 до 200 опыта включительно. Но уровень 3 требует 200 и 400 опыта включительно. Если у вашего игрока 200EXP, то он технически 2 и 3 уровня. Когда код запускается, он будет соответствовать 200 в разделе кода уровня 2, а не в разделе уровня 3 ...
Ваш код:
if($playerEXPERIENCE >= 100 && $playerEXPERIENCE <= 200)
//code to make them 2
if($playerEXPERIENCE >= 200 $$ $playerEXPERIENCE <= 400)
//code to make them 3
Это мне кажется неправильным - хотя это может быть тем, что вы намеревались, я не знаю. Если он не предназначен, вы должны изменить его на:
if($playerEXPERIENCE >= 100 && $playerEXPERIENCE < 200)
Обратите внимание на использование <</strong> [МЕНЬШЕ, ЧЕМ] вместо <= </strong> [МЕНЬШЕ, ЧЕМ ИЛИ РАВНОЕ].
Надеюсь, это решит вашу проблему:)