2011-10-17 58 views
1

我工作的一個彩票系統對我的比賽,我在與總鍋的大小問題獲得從總金額中排MySQL的PHP​​

目前的進展:http://playsilab.com/lottery

不管怎麼說,我」因爲用戶會在遊戲中購買一張門票,並且這個門票可以算作+5的貨幣。

這是表的樣子 enter image description here

基本上我需要它來計算所有這些500萬的輸出1號 或我其他的想法,受到人們的數量和* 5 任何這些將是偉大的:)

基本上是8人5000000應該打印出來40000000(40M)

我嘗試:

$pot = mysql_query("SELECT name, SUM(pot), COUNT(name) FROM contestants"); 
$details = mysql_fetch_array($pot); 
$totalpot = $details['SUM($details['pot']']; 

回答

2

此行是錯誤的:

$totalpot = $details['SUM($details['pot']']; 

這個問題似乎是一個組合:帶引號的字符串

  • 你的美元基準是不是正在評估中

    • 轉義引號,因爲它是在單引號內
    • 缺少括號
    • 並且通常不正確

    給你列別名,以便更容易引用它們在你的源代碼:

    SELECT SUM(pot) AS sum_pot, COUNT(name) AS count_name FROM contestants 
    

    然後,你可以這樣寫:

    $totalpot = $details['sum_pot']; 
    

    也有許多例如:您的代碼存在其他問題,例如:

    • 您不檢查以查看如果在嘗試訪問結果之前查詢失敗。
    • 從同一個結果集中返回單個行中的name和聚合值(如SUM)是沒有意義的。在MySQL中它是合法的,但在許多其他數據庫中,這將被作爲錯誤拒絕。
  • +0

    工作完美:) 「:30M GP鍋目前是。」 – Travis

    0

    我的解決方案:

    list($totalpot) = @mysql_fetch_row(mysql_query("SELECT SUM(pot) FROM contestants WHERE pot=5000000")); 
    list($count) = @mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM contestants WHERE pot=5000000")); 
    

    ,或者如果你想有盆栽量總和

    $query = mysql_query("SELECT pot, SUM(pot) as sum_pot, COUNT(*) as count_pot FROM contestants GROUP BY pot"); 
    while($row = @mysql_fetch_assoc($query)) { 
        // $row['pot'] is 50000 
        // $row['sum_pot'] is 40M 
        // $row['count_pot'] is 8 
    }