2013-09-29 36 views
-2
$sum = 0; 
$sqlM = "SELECT * FROM players"; 
$resM = mysql_query($sqlM) or die(mysql_error()); 
while($rowM = mysql_fetch_array($resM)){ 
//Total Runs 
    $sqlr = "SELECT * FROM runs WHERE pId = ".$rowM['Id'].""; 
    $resr = mysql_query($sqlr) or die(mysql_error()); 
    while($rowr = mysql_fetch_array($resr)){ 
     $sum += $rowr['runs']; 
    } 
    $totalRuns[$rowr['pId']] = array(
     array( 
     'id' => intval($rowr['pId']), 
     'score' => $sum 
     ) 
    ); 


}; 

如何從每個玩家獲取所有遊戲總數並將其添加到數組中以進行排序? 這裏有兩張桌球員和球員,所以每個球員都需要他的全部投球並將其添加到陣列中,這樣我就可以得到最好的5人得分手。我嘗試了我所知道的一切,但我沒有把它做對。 上面的代碼是我到目前爲止所做的,但它不工作。如何獲得每個玩家的總跑數並將其添加到數組?

+0

你到目前爲止嘗試了什麼? – djot

+0

你可以訂購它更可讀嗎? – mwebber

+0

我並不完全確定你要做什麼,但我想你可以讓MySQL爲你使用'JOIN','COUNT()'和可能的'GROUP BY'來完成你的工作。 – TheWolf

回答

0

嘗試以下查詢:

SELECT players.id, COUNT(runs.pId) as runCount 
FROM players 
JOIN runs ON runs.pId = players.id 
GROUP BY players.id 
ORDER BY runCount DESC 
LIMIT 5 

還沒有嘗試過,所以有可能在這一個語法錯誤,如果是的話,請張貼在評論,所以我可以修復它。

編輯:(可能)語法錯誤修復

+0

這裏有一個語法錯誤:COUNT(runs。*) –

+0

你能發佈完整的錯誤信息嗎? – TheWolf

+0

我剛剛編輯了查詢,請再試一次。 – TheWolf

0

爲什麼不只是像這樣創建另一個數組?

$player; 
$totolarun; 
$player_total=array(); 

$sum = 0; 
$sqlM = "SELECT * FROM players"; 
$resM = mysql_query($sqlM) or die(mysql_error()); 
while($rowM = mysql_fetch_array($resM)){ 
//Total Runs 
     $sqlr = "SELECT * FROM runs WHERE pId = ".$rowM['Id'].""; 
     $resr = mysql_query($sqlr) or die(mysql_error()); 
     while($rowr = mysql_fetch_array($resr)){ 
       $sum += $rowr['runs']; 
       $totolarun=$sum; 
     } 
     $player = $rowr['pId']; 
     $player_total[$player]= $totolarun; 

}; 
foreach($player_total as $key=>$value){ 
echo $key ." = ".$value." <br>"; 
} 

var_dump($player_total); 

希望它給你一個想法。在這裏小編編輯;Ø

+0

謝謝我有一個想法,並得到它的工作。 = D –

+0

雖然我很高興你讓你的代碼工作,但我仍然相信你的計數並不是必須的,因爲MySQL可以爲你做。你有沒有嘗試執行我建議下面的查詢,可能在phpmyadmin或類似的工具?無論如何,如果它解決了您的問題,請接受答案。 – TheWolf

+0

嗯,我是PHP和MySQL的初學者,這是爲我的任務。這是我堅持了幾天的部分 –

相關問題