0

i got a Problem and i dont know how to resolve it.

I have a table that changes from soll(negative) to haben(positive) when a transaction was made that goes into negative or positive number.

Ex: Team A: 'pes_teams_budget' = 5, 'pes_teams_konto' = haben Team B: 'pes_teams_budget' = -5(change made by hand to adjust the budget), 'pes_teams_konto' = soll

Team A pays Team B 10 €.

Result is: Team A: 'pes_teams_budget' = 5, 'pes_teams_konto' = soll Team B: 'pes_teams_budget' = 5, 'pes_teams_konto' = haben

It should be: Team A: 'pes_teams_budget' = *-*5, 'pes_teams_konto' = soll Team B: 'pes_teams_budget' = 5, 'pes_teams_konto' = haben

The Code does not change/show a negative value. It just stays a positive number but changes from soll to haben.

The problem that follows: seeing this still as a positive number it does not calculate properly anymore.

I hope somebody can help me, if further informations are needed let me know. Thank you

$receiver_data = get_team_data($receiver);
$receiver_budget = (int)$receiver_data['pes_teams_budget'];
$receiver_sql = "";
if($receiver_data['pes_teams_konto'] == "soll") {
    if( $receiver_budget < $ammount ) {
        $positiv_rest = $ammount - $receiver_budget;
        $disposer_sql = "UPDATE `d017ee3d`.`pes_teams` SET `pes_teams_konto` = 'haben', `pes_teams_budget` = '".(string)$positiv_rest."' WHERE `pes_teams`.`pes_teams_ID` =".$receiver.";";
    } elseif($receiver_budget == $ammount ) {
        $receiver_sql = "UPDATE `d017ee3d`.`pes_teams` SET `pes_teams_konto` = 'haben', `pes_teams_budget` = '0' WHERE `pes_teams`.`pes_teams_ID` =".$receiver.";";
    } else {
        $receiver_sql = "UPDATE `d017ee3d`.`pes_teams` SET `pes_teams_budget` = `pes_teams_budget` - '".$ammount_param."' WHERE `pes_teams`.`pes_teams_ID` =".$receiver.";";
    }
} else {
    $receiver_sql = "UPDATE `d017ee3d`.`pes_teams` SET `pes_teams_budget` = `pes_teams_budget` + '".$ammount_param."' WHERE `pes_teams`.`pes_teams_ID` =".$receiver.";";
}
$return['receiver_sql'] = $receiver_sql;
include('dbconnect.php');
$receiver_result = mysql_query($receiver_sql);
$return['receiver_result'] = $receiver_result;
if (!$receiver_result) {
    $return['error_receiver'] .= 'Ung&uuml;ltige Anfrage: '.mysql_error();
} else {
    $return['status_receiver'] = "success";
}   

//UPDATE mytab SET geld = geld - '200' WHERE id = $disposer
//UPDATE mytab SET geld = geld - '200' WHERE id = $receiver
//UPDATE `d017ee3d`.`pes_teams` SET `pes_teams_budget` = '100000001' WHERE `pes_teams`.`pes_teams_ID` =1;
//UPDATE `d017ee3d`.`pes_teams` SET `pes_teams_konto` = 'soll', `pes_teams_budget` = '1000' WHERE `pes_teams`.`pes_teams_ID` =1;

return $return;
user2220091
  • 3
  • 1
  • 4
  • 1
    What is the datatype of that column and is it set to be unsigned? – John Conde Feb 03 '14 at 13:51
  • John is right, check out this SO article: [http://stackoverflow.com/questions/3895692/what-does-unsigned-in-mysql-mean-and-when-to-use-it](http://stackoverflow.com/questions/3895692/what-does-unsigned-in-mysql-mean-and-when-to-use-it) – Derek Nutile Feb 03 '14 at 13:54

0 Answers0