debian-7.0.32bity--RepoPL, jeśli dobrze Cię zrozumiałem.
To jest najtańszy serwer VPS mintshost, który służy mi do nauki.
gdy wprowadzę tak duże kwoty np. 150.000.000.000.000 x 3 to wchodzi ok, a gdy np. 148.531.561.971.675 x 3 to już błąd ;/. Czy da się to jakoś zrobić tak, żeby przyjmowała baza takie duże wartości? w mysql, zlotowka, funt, dolar są typami: bigint (20) , atrybut- unsigned. Czy może jak zmienie na inne wartości np. bigint z wartością (100) lub na double będzie to działać poprawnie?...
Edit: Może żeby było jaśniej, chciałem zrobić coś na zasadzie prostego banku na stronie, w który można wpłacać wirtualne pieniądze, a potem je wypłacać. czyli praktycznie coś prostego, co dziwne, wpłata takich dużych wartości odbywa się bez problemu, przy okazji zabierając 20% wpłacanej kwoty. pojawia sę normalnie w banku, a przy wypłacie już jest problem.
EDIT:
Można powiedzieć, że problem jest "rozwiązany". Wydaje mi się, że cos schrzaniłem w php z zapytaniaim, bo działają mi dwie waluty, tylko z jedną jest problem i tylko przy wypłacie.
Jednak dupa, siedzę nad tym już trzeci dzień i nie wiem co jest nie tak, zmieniałem już typy kolumny w tabeli ale to nie pomagało..
może coś jest zle w kodzie? poniżej kod odpowiadający za wypłatę:
function out()
{
global $USER, $MIASTO, $CONF, $waluta;
$action = HTTP::_GP('action', '');
$mZloty = $USER['bankz'];
$mFunt = $USER['bankf'];
$mDolar = $USER['bankd'];
if ($action == 'out') {
$bZloty = max(0
, round(HTTP
::_GP
('zloty', 0
.0
))); $bFunt = max(0
, round(HTTP
::_GP
('funt', 0
.0
))); $bDolar = max(0
, round(HTTP
::_GP
('dolar', 0
.0
)));
if($bZloty < '0'){$this->printMessage('error_1', 'game.php?page=logout');}
elseif($bFunt < '0'){$this->printMessage('error_2', 'game.php?page=logout');}
elseif($bDolar < '0'){$this->printMessage('error_3', 'game.php?page=logout');}
elseif($bZloty == '0' && $bFunt == '0' && $bDolar == '0'){$this->printMessage(['wprowadz jakąś kwotę'], 'game.php?page=bank');}
elseif($bZloty > $mZloty){$this->printMessage($LNG['error_out_1'], 'game.php?page=bank', 3);}
elseif($bFunt > $mFunt){$this->printMessage($LNG['error_out_2'], 'game.php?page=bank', 3);}
elseif($bDolar > $mDolar){$this->printMessage($LNG['error_out_3'], 'game.php?page=bank', 3);}
else{
$Miasto[$waluta[101]] += $bZloty;
$Miasto[$waluta[102]] += $bFunt;
$Miasto[$waluta[103]] += $bDolar;
$GLOBALS['DATABASE']->query("UPDATE ".USERS." SET
bankz = bankz - $bZloty,
bankf = bankf - $bFunt,
bankd = bankd - $bDolar
WHERE id = ".$USER['id'].";");
$this->printMessage( 'Zdeponowano '.$bZloty .' Zlotych, '. $bFunt .' Funtów i '. $bDolar .' Dolarow.', 'game.php?page=bank');
}
}
$this->tplObj->assign_vars(array(
'bankz' => $USER['bankz'],
'bankc' => $USER['bankf'],
'bankd' => $USER['bankd'],
));
$this->display('bank_out.tpl');
}