У меня есть этот код:
$TargetPlayerPosition = $GLOBALS['DATABASE']->uniquequery("SELECT total_rank FROM ".STATPOINTS." WHERE 'id_owner' = '". $this->_fleet['fleet_target_owner'] ."';");
Проблема в том, что я не могу добавить +10 в $TargetPlayerPosition
, потому что это строка. Но в БД total_rank
является INT.
Не знаете, как вы извлекаете значение из набора результатов после запроса. Как правило, вы должны получить целочисленное значение типа из поля, которое является целым числом в БД. Если нет, вы можете преобразовать значение в php.
$v = (int)$v;
// Or.
$v = intval($v);
Вы можете использовать следующий запрос для динамического добавления номера при запросе:
"SELECT (total_rank+10) AS total_rank FROM ".STATPOINTS." WHERE ..."
Даже если поле типа string может выполнять следующие действия:
"SELECT (CONVERT(total_rank, SIGNED INTEGER)+10) AS total_rank FROM ".STATPOINTS." WHERE ..."
<?php
$TargetPlayerPosition = $GLOBALS['DATABASE']->uniquequery("SELECT total_rank FROM ".STATPOINTS." WHERE 'id_owner' = '". $this->_fleet['fleet_target_owner'] ."';");
/* conversion to int */
$rank = (int) $TargetPlayerPosition;
/* do the required arithmetic */
/* $rank + 10 will work now */
?>
$TargetPlayerPosition
является строкой, а не объектом результата?