2013-04-15 65 views
0

我想$ userhp1打印到屏幕上,並保存到分配的sql表中。這工作正常,但他們都返回不同的結果。無論如何要讓他們返回相同的價值?PHP變量返回2個不同的值?

ob_start(); 
vitality(); //runs vitality function 
$uservit = ob_get_contents(); // stores result on $uservit 
ob_end_clean(); 
echo "-Vitality:"; 
echo "$uservit<br />";// Prints vitality 
$userhp1 = $uservit * 2.8; // multiplys vitality too create HP 
$userhp2 = $userhp1; 

echo "-HP From vit:"; 
echo "$userhp2"; // prints hp 

$con=mysqli_connect("localhost", "***", "***", "***"); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

mysqli_query($con,"UPDATE users SET hp=$userhp2 
WHERE id='1'"); 
mysqli_close($con); 
+1

「但他們都返回不同的結果」 - **什麼**返回不同的結果? – Shoe

+0

$ userhp1足夠使用,你不需要另一個變種 –

+0

你的意思是不同的結果。你可以給出1個例子?/ –

回答

1

有兩件事情錯在你的代碼:

ob_start(); 
vitality(); 
$uservit = ob_get_contents(); 

在這裏,你似乎可以用在ob_*函數族從一個函數返回一個值。​​將返回一個字符串,你似乎不很高興,因爲你正在使用它作爲一個整數:

$userhp1 = $uservit * 2.8; 

你可以從return該函數的值。輸出緩衝用於其他事情。

其次,你聲明$userhp2 = $userhp1;,然後你只是不修改$userhp1$userhp2。你爲什麼不使用$userhp1而不是$userhp2,並且從不把它設置在第一位?

附註:mysql_*功能正在被刪除,它們已被棄用。改爲使用PDOmysqli