私のjsonレスポンスで1,2番目と3番目の行に対して同じ値を取得しています。第2列に想定される結果が第2列に表示され、第1列にある第3結果が第3列に表示されます。 Iveはすべてを試してみましたが、依然として良い結果は得られませんでした。事前のおかげでここ私のsqlクエリは、jsonレスポンスで3行の同じデータ型を返す
$sql = "select
e_name,
a_shortcut,
case
when t_rank = 1 then '1st'
when t_rank = 2 then '2nd'
when t_rank = 3 then '3rd'
end as t_rank
from
team inner join event on team.EID = event.eid Where e_type = 'nonsport' group by event.eid";
$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("e_name"=>$row[0],"1st"=>$row[1],
"2nd"=>$row[2], "3rd"=>$row[2]));
}
echo json_encode (array("nresults"=>$response));
私の2番目と3番目の行がある場合、イムは私のサーバー応答で取得するものである[2]及び[2]。
{"nresults":[{"e_name":"Amateur Photography Contest","1st":"AAA","2nd":"3rd","3rd":"3rd"}]}
私は
1st"=>$row[1],
"2nd"=>$row[2], "3rd"=>$row[2] into 1st"=>$row[1],
"2nd"=>$row[1], "3rd"=>$row[1]
を変更した場合はそれは私の期待出力され、この
{"nresults":[{"e_name":"Amateur Photography Contest","1st":"AAA","2nd":"AAA","3rd":"AAA"}]}
のようになります。 AAAランク1である場合には、BBBは、この
{"nresults":[{"e_name":"Amateur Photography Contest","1st":"AAA","2nd":"BBB","3rd":"CCC"}]}
クエリの '第一' で、どの列? –
MySQL以外のものはすべて削除し、http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-を参照してください。 be-a-very-simple-sql-query – Strawberry
@DaniloBustos 1位2位と3位はランクに応じてa_shortcutにする必要があります – orange