2015-05-03 34 views
-2

你好,我需要幫助大約一個功能我試圖解釋:PHP函數不是結果工作同統計

這是代碼:

// here user-a START // 
function get_car_speed_a($carid) 
{ 
    $sqle = mysql_query("SELECT speed FROM `user_cars` WHERE userid='$urow[id]' AND carid='$carid'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['speed']; 
} 

function get_car_stability_a($carid) 
{ 
    $sqle = mysql_query("SELECT stability FROM `user_cars` WHERE userid='$urow[id]' AND carid='$carid'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['stability']; 
} 

function get_car_acceleration_a($carid) 
{ 
    $sqle = mysql_query("SELECT acceleration FROM `user_cars` WHERE userid='$urow[id]' AND carid='$carid'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['acceleration']; 
} 
// here user-a END // 



// here user-b START // 
function get_car_speed_b($carid) 
{ 
    $sqle = mysql_query("SELECT speed FROM `user_cars` WHERE userid='$row2[id]' AND carid='$carid2'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['speed']; 
} 

function get_car_stability_b($carid) 
{ 
    $sqle = mysql_query("SELECT stability FROM `user_cars` WHERE userid='$row2[id]' AND carid='$carid2'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['stability']; 
} 

function get_car_acceleration_b($carid) 
{ 
    $sqle = mysql_query("SELECT acceleration FROM `user_cars` WHERE userid='$row2[id]' AND carid='$carid2'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['acceleration']; 
} 
// here user-b END // 

而這正是召回函數的代碼:

// battle function start// 

    $apoints = get_car_speed_a($useracar) + get_car_stability_a($useracar) + get_car_acceleration_a($useracar); 
    $bpoints = get_car_speed_b($userbcar) + get_car_stability_b($userbcar) + get_car_acceleration_b($userbcar); 


    // battle function end// 

的問題很容易在網站時,我就與用戶的爭奪戰VS用戶b它不採取正確的速度,穩定性和accelleration所以pratically用戶b(敵人)會失去...

有人可以幫助我嗎?非常感謝你 問候 艾米

+0

目前還不清楚你的問題實際上是什麼,除了每個用戶編寫相同的查詢3次,當有人會做。 – RiggsFolly

+0

你好,謝謝你的答覆實際上我試圖讓這個系統的例子用戶A和用戶B的戰鬥必須從數據的速度,穩定性和加速度的汽車,所以這是SQL表的截圖fan4free.com/xrace/screenshot20問題是功能不從用戶a和用戶b採取正確的數據戰鬥工程,但兩個用戶有相同的統計數據,這是錯誤的,因爲在這種情況下,用戶b必須贏得檢查圖像http:// fan4free。 com/xrace/screenshot21.jpg –

回答

0

在 「B」 的功能,你宣佈$ carid,並在SQL中使用$ carid2,改變這種:

// here user-b START // 
function get_car_speed_b($carid) 
{ 
    $sqle = mysql_query("SELECT speed FROM `user_cars` WHERE userid='$row2[id]' AND carid='$carid'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['speed']; 
} 

function get_car_stability_b($carid) 
{ 
    $sqle = mysql_query("SELECT stability FROM `user_cars` WHERE userid='$row2[id]' AND carid='$carid'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['stability']; 
} 

function get_car_acceleration_b($carid) 
{ 
    $sqle = mysql_query("SELECT acceleration FROM `user_cars` WHERE userid='$row2[id]' AND carid='$carid'"); 
    $row1 = mysql_fetch_array($sqle); 
    return $row1['acceleration']; 
} 
// here user-b END // 

並檢查變量$ urow [ '身份證' ]和$ 2行[「身份證」]作爲用戶名和$ carid,如果他們有正確的價值

UPDATE

你可以放在一起功能於一體

function get_car_info($userid, $carid) 
{ 
    $res = mysql_query("SELECT speed, stability, acceleration FROM `user_cars` WHERE userid='$userid' AND carid='$carid'"); 
    return mysql_fetch_array($res); 
} 

而得到這樣

$carinfoA = get_car_info($useridA, $caridA); 
$carinfoB = get_car_info($useridB, $caridB); 

$apoints = $carinfoA['speed'] + $carinfoA['stability'] + $carinfoA['acceleration']; 
$bpoints = $carinfoB['speed'] + $carinfoB['stability'] + $carinfoB['acceleration']; 

我創造了你發送的測試表中的結果,這裏的結果是正確的。

如果錯誤仍然存​​在,錯誤應該在代碼的另一部分。

+0

感謝您的回答我嘗試但沒有任何變化:/這裏有SQL表格圖片http://fan4free.com/xrace/screenshot20.png –

+0

謝謝jairo我試試這個新的代碼,但沒有:/問題是功能不從用戶a和用戶b採取正確的數據戰鬥的作品,但兩個用戶有相同的統計數據,這是錯誤的,因爲在這種情況下,用戶b必須贏得檢查圖像,請http://fan4free.com/xrace/SC reenshot21.jpg有沒有其他建議?我們可以使用示例「Active」而不是carid?感謝您的耐心;) –

+0

在這種情況下,更好地調試從數據庫中獲取數據的函數的代碼,並遵循調用的函數,直到找到錯誤。如果你沒有一些調試工具,只是一個var_dump可以正常工作。首先在執行查詢之前檢查sql代碼,將其複製並在您的數據庫管理器中執行,檢查它們是否獲得相同的數據,如果sql使用正確的userid/carid,請檢查get_car_info返回的值,並檢查總和(速度+穩定性+加速度),並繼續前進直到得到不正確的值,那就是我會做的。 –