Chyba się nie walnąłem i dobrze zrozumiałem.
$red = $this->ipsclass->input['enablered'];
$bold = $this->ipsclass->input['enablebold'];
$italic = $this->ipsclass->input['enableitalic'];
$price1 = 10; // Cena za red
$price2 = 5; //cena za bold
$price3 = 3; //cena za italic
$items = array ( $red => $price1, $bold => $price2, $italic => $price3 );
$state = $this->ipsclass->member['fg']; // to tylko przyklad i zakladam, ze ladujesz dane za pomoca load_member
$tmp_sum = 0; //na poczatku nic nie kupilismy
$i = 0; // taki sobie liczniczek
foreach ( $items as $k => $v )
{
$tmp_sum = ( $tmp_sum <= $state ) ? ( $tmp_sum + $v ) : break;
$i++;
}
if ( $i )
{
$this->ipsclass->DB->do_update( 'members', array( 'fg'=> $state - $tmp_sum ) , 'id='.$this->ipsclass->member['id'] );
}