$UL = $user['level'] + 1;
$XP = $user['exp'];
$Lvls = mysql_query('SELECT * FROM `levels` WHERE `Number` ='.$UL.';');
$Lvl = mysql_fetch_array($Lvls);
$exp_in = $Lvl['Exp'];
if($exp_in <= $XP){
echo('<div class="block center">Новый уровень!<br>Награда:'.$user['level'].' <img src="/images/coin.png"> </div>');
mysql_query("update `users` set `exp` = 0, `level` = `level` + 1, `coin` = `coin` + ".$user['level']." where `id` = ".$user['id']."");
}
$exp_in = "150"
, a $XP = "15"
, то условие ($exp_in <= $XP)
будет выглядесть как ("150" <= "15")
и не будет выполняться.10 > 2 === true
"10" > "2" === false
В случае, если оба операнда являются строками, содержащими числа или один операнд является числом, а другой - строкой, содержащей числа, то сравнение выполняется численно. Эти правила также применяются к оператору switch. Преобразование типа не происходит при сравнении === или !==, поскольку это включает сравнение типа, а также значения.
var_dump([$exp_in, $XP]);
if($exp_in <= $XP){
var_dump(1);
...
var_dump(2);
...
Тем более работа с БД выполняется успешноКак вы это проверяете?
Однако если поменять значение второй переменной/заменить её например на простое число,надпись выводится. Также если ставить напрямую $user[exp],то надпись также не выводится.var_dump ничего не показывает. К слову,работает всё на php 5.4
var_dump ничего не показывает.Значит таких значений нет.
Что-то не так конкретно с echo, или в буферизации дело,Возможно, это легко проверить, достаточно добавить exit(); после вывода. Будет понятно дело в буфере или в чем то другом. Опять же - готовить данные, потом работать с выводом, тогда не будет проблем с буферизацией. Когда каша в коде - невозможно работать с ошибками. Но сомневаюсь что дело в этом.
Однако если поменять значение второй переменной/заменить её например на простое число, надпись выводится.Значит переменные не содержат то что должны, а буферизация отсутствует.
Также если ставить напрямую $user[exp]...ну вот и проверяйте var_dump($user), смотрите какие значения и ключи там есть.
<?=$variable?>
, тогда и отладка и вывод будут на порядок проще.