2017-01-09 12 views
0

どのように選択クエリに値を追加しますか?私のコードの例では、私は5金、2銀、1ブロンズを持っています。 1ゴールドは3ポイント、1シルバーは2ポイントです。私の質問は、選択クエリでこれをどのように計算するのですか?出来ますか?ここでPHPの選択クエリで値を追加

は私のPHPスクリプトは、ここで

$sql = "SELECT team.shortcut, 
      SUM(IF(rank = 1, 1, 0)) AS gold, 
      SUM(IF(rank = 2, 1, 0)) AS silver, 
      SUM(IF(rank = 3, 1, 0)) AS bronze 
     FROM team 
      INNER JOIN academicorg ON team.shortcut = academicorg.shortcut 
     GROUP BY shortcut 
     ORDER BY gold DESC, silver DESC, bronze DESC";       

$con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name); 

$result = mysqli_query($con,$sql); 
$response = array(); 
while($row=mysqli_fetch_array($result)) 
{ 
    array_push($response, array("shortcut"=>$row[0], "gold"=>$row[1], "silver"=>$row[2], "bronze"=>$row[3], "total"=>$row[4])); 
} 

echo json_encode (array("news_response"=>$response)); 
mysqli_close($con); 
?> 

である私はここ

{"news_response":[{"shortcut":"aaa","gold":"6","silver":"3","bronze":"5","total":null}, 

{"shortcut":"bbb","gold":"6","silver":"3","bronze":"4","total":null} 

は私が欲しいものである得るものです。ゴールドは3ポイント、シルバーは2、ブロンズは1だから私は合計29点を得ました。

{"news_response":[{"shortcut":"aaa","gold":"6","silver":"3","bronze":"5","total"29}, 

{"shortcut":"bbb","gold":"6","silver":"3","bronze":"4","total":28} 
+2

私は分かりません。何をしたいですか? – malutki5200

+0

私はあなたが別の選択内の選択をラップする必要があるだろうと思う。あなたのwhileループの中で数学をやる方が簡単かもしれません。 – aynber

+0

入力を表示して、希望の結果を表示 – RiggsFolly

答えて

1

私はこれを試してみるとよいでしょう。そのテストされていない私は必要なデータベースを持っていない

SELECT team.shortcut, 
    SUM(IF(rank = 1, 1, 0)) AS gold, 
    SUM(IF(rank = 2, 1, 0)) AS silver, 
    SUM(IF(rank = 3, 1, 0)) AS bronze, 
    SUM(IF(rank = 1, 3, IF(rank = 2, 2, IF(rank = 3, 1, 0)))) as total 
FROM team 
    INNER JOIN academicorg ON team.shortcut = academicorg.shortcut 
GROUP BY shortcut 
ORDER BY gold DESC, silver DESC, bronze DESC 
+0

作品。ありがとうございました – orange

+0

またはSUM(ランク= 1)... – Strawberry

+0

@StrawberryそれはOPのゴールドを1位、ブロンズを3位にして保存した場合を除き、働いていたかもしれません – RiggsFolly

関連する問題