variable inside a variable php

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
jonnyfortis
Forum Contributor
Posts: 462
Joined: Tue Jan 10, 2012 6:05 am

variable inside a variable php

Post by jonnyfortis »

I have hit a brick wall on some calculation i am making.

I have some tables that show figures that are used and payment figures. however some of the figures are generated from other variables.

i have my equations set up but am getting negative values. basically i have some variables that i have to included (e.g $option_one->balance_due_before) but im not sure if these are stored correctly in my new variables i have set up

this is what i have so far

Code: Select all

$row_Recordset1['rental_price']
$utilityHost = 21.0;
$col3 = $utilityHost * $col5;
$col4 = $option_one->balance_due_before - $option_one->four_weeks_security - $option_one->fee;
$col5 = $col4 / $row_Recordset1['rental_price'];
$col6 = $row_Recordset1['rental_price'] * $col5;
 
variable $option_one->balance_due_before is echoed on the page in another area £<?php echo $option_one->balance_before ?>

this is also the same for $option_one->four_weeks_security and $option_one->fee

the results are echoed for the following variables below

Code: Select all

echo "£" . number_format($row_Recordset1['rental_price'] - $utilityHost);
echo "£" . $utilityHost;
echo "£" . $col3;
echo "£" . $col4;
echo "£" . $col5;
echo "£" . $col6;
 
i think it must be $col4 must be causing the incorrect results

can you help?
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Re: variable inside a variable php

Post by Christopher »

Can you show the initial values and what is results are echoed from those values. It is a difficult to see what is going on. Plus you have the variable $row_Recordset1['rental_price'] on a line 1 by itself with no assignment or even semicolon. And then you use $col5 on line 3 but it is not yet assigned a value.
(#10850)
jonnyfortis
Forum Contributor
Posts: 462
Joined: Tue Jan 10, 2012 6:05 am

Re: variable inside a variable php

Post by jonnyfortis »

Plus you have the variable $row_Recordset1['rental_price']
sorry that should read $row_Recordset1['rental_price'];

that was a typo
And then you use $col5 on line 3 but it is not yet assigned a value.
this is needs to get the values from $col4 / $row_Recordset1['rental_price'];

is that what you mean?
jonnyfortis
Forum Contributor
Posts: 462
Joined: Tue Jan 10, 2012 6:05 am

Re: variable inside a variable php

Post by jonnyfortis »

for example the $option_one

is as follows

$option_one = new PaymentOptionOne($rent, $weeks);


require_once('../lib/PaymentOptionOne.php');
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Re: variable inside a variable php

Post by Christopher »

jonnyfortis wrote:sorry that should read $row_Recordset1['rental_price'];
But the a like with just $row_Recordset1['rental_price']; on it will do nothing.
jonnyfortis wrote:this is needs to get the values from $col4 / $row_Recordset1['rental_price'];

is that what you mean?
So what is the value of $col5 when this like executes?

$col3 = $utilityHost * $col5;
(#10850)
jonnyfortis
Forum Contributor
Posts: 462
Joined: Tue Jan 10, 2012 6:05 am

Re: variable inside a variable php

Post by jonnyfortis »

ok this is what it looks like with values

example with actual values

$row_Recordset1['rental_price'];m = 104
$option_one->balance_due_before = 1910.8
$option_one->four_weeks_security = 416
$option_one->fee = 184.8;

the results i am getting are

echo "£" . number_format($row_Recordset1['rental_price'] - $utilityHost); -= £83
echo "£" . $utilityHost; = £21
echo "£" . $col3; = £-121.31538461538
echo "£" . $col4; = £-600.8
echo "£" . $col5; = £-5.7769230769231
echo "£" . $col6; = £-600.8

by the looks of it the 1st two are correct but then they are not
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Re: variable inside a variable php

Post by Christopher »

I get different numbers than you, but the code you are posting is still messed up (e.g., "$row_Recordset1['rental_price'];m = 104"). Here is some test code I assembled from things you posted above. I get different numbers.

Code: Select all

// mock class
class PaymentOptionOne
{
	public $balance_due_before = 0.0;
	public $four_weeks_security = 0.0;
	public $fee = 0.0;

	public function __construct($rent, $weeks) {}
	
}
// initialize vars
$option_one = new PaymentOptionOne(0.0, 0);
$row_Recordset1 = array();

$row_Recordset1['rental_price'] = 104;
$option_one->balance_due_before = 1910.8;
$option_one->four_weeks_security = 416;
$option_one->fee = 184.8;

$utilityHost = 21.0;
$col5 = 1;     // set this var so the next line will work
$col3 = $utilityHost * $col5;
$col4 = $option_one->balance_due_before - $option_one->four_weeks_security - $option_one->fee;
$col5 = $col4 / $row_Recordset1['rental_price'];
$col6 = $row_Recordset1['rental_price'] * $col5;


echo "<br/>row_Recordset1['rental_price'] - utilityHost=" . number_format($row_Recordset1['rental_price'] - $utilityHost);
echo "<br/>utilityHost=" . $utilityHost;
echo "<br/>col3=" . $col3;
echo "<br/>col4=" . $col4;
echo "<br/>col5=" . $col5;
echo "<br/>col6=" . $col6;
Outputs:[text]row_Recordset1['rental_price'] - utilityHost=83
utilityHost=21
col3=21
col4=1310
col5=12.596153846154
col6=1310[/text]
(#10850)
jonnyfortis
Forum Contributor
Posts: 462
Joined: Tue Jan 10, 2012 6:05 am

Re: variable inside a variable php

Post by jonnyfortis »

I get different numbers than you, but the code you are posting is still messed up (e.g., "$row_Recordset1['rental_price'];m = 104")
sorry that was a typo there should not be an m before = 104

the other values are pulled in from an include ( all the variales with $option_one )

Code: Select all

    public $weekly_amount;
    public $four_weeks_security;
    public $fifty_two_weeks;
    public $fee;
    public $fifty_two_inc_fee;
    public $deposit;
    public $fifteen_weeks;
    public $balance_before;
    public $second_payment;
    public $third_payment;
    public $fourth_payment;
    public $total;
 
 
    function __construct($weekly_amount, $weeks) {
        $this->weekly_amount = $weekly_amount;
 
 
        $this->four_weeks_security = $this->weekly_amount * 4;
        $this->fifty_two_weeks = $this->weekly_amount * $weeks;
        $this->fee = 184.8;
        $this->fifty_two_inc_fee = ($this->four_weeks_security + $this->fifty_two_weeks + $this->fee);
        $this->deposit = 250;
        $this->fifteen_weeks = (($this->weekly_amount * 15) + $this->fee + $this->four_weeks_security);
        $this->balance_before = ($this->fifteen_weeks - $this->deposit);
        $this->second_payment = ($this->weekly_amount * 14);
        $this->third_payment =  ($this->weekly_amount * 14);
 
 
        $this->fourth_payment = 0;
        if($weeks == 52)
            $this->fourth_payment = ($this->weekly_amount * 9);
 
 
        $this->total = ($this->fifteen_weeks + $this->second_payment + $this->third_payment + $this->fourth_payment);
    }
}
but what you have produced is looking more like the correct results.. does the above code help?
Last edited by Benjamin on Tue Nov 27, 2012 7:16 pm, edited 1 time in total.
Reason: Added [syntax=php||htm||css||javascript||sql||etc] - Please use [syntax] tags when posting code in the forums! Thanks.
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Re: variable inside a variable php

Post by Christopher »

The question is -- what part is not working? There are a lot of calculations there. Which ones are wrong? You need to step through with a debugger or put echo after every calculations to see where it is going wrong.
(#10850)
jonnyfortis
Forum Contributor
Posts: 462
Joined: Tue Jan 10, 2012 6:05 am

Re: variable inside a variable php

Post by jonnyfortis »

what part is not working
this is the code that is causing the problems. i am not getting errors but am getting incorrect results

$col4 = $option_one->balance_due_before - ($option_one->four_weeks_security - $option_one->fee);

i have added parentheses around part of the equation so this is processed first

$utilityHost = 21.0;
$col4 = $option_one->balance_due_before - ($option_one->four_weeks_security - $option_one->fee);
$col5 = $col4 / $row_Recordset1['rental_price'];
$col3 = $utilityHost * $col5;
$col6 = $row_Recordset1['rental_price'] * $col5;

$row_Recordset1['rental_price']; = 104
$option_one->balance_due_before = 1910.8
$option_one->four_weeks_security = 416
$option_one->fee = 184.8;

the results i am getting are

echo "£" . number_format($row_Recordset1['rental_price'] - $utilityHost); -= £83
echo "£" . $utilityHost; = £21
echo "£" . $col3; = £-46.684615384615
echo "£" . $col4; = £-231.2
echo "£" . $col5; = £-2.2230769230769
echo "£" . $col6; = £-231.2


not of the results should be negative
Post Reply