2017-02-06 4 views
0

これをjson形式でどのようにエンコードしますか?私は第1位と同じデータを受け取っていますが、第2位=> $行の場合は1、 "第3" => $行1と同じデータが取得されています。誰か助けてください、ありがとう。JSONエンコードは同じタイプを返します

はここにここに私のPHP

$sql = "select n_name, shortcut, IF(rank = 1>2, 2, shortcut) AS 1st, IF(rank = 1<2, shortcut, shortcut) AS 2nd, 
IF(rank = 3=3, 1, shortcut) as 3rd from team inner join nonsport on team.n_id = nonsport.n_id group by n_name";       

$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("n_name"=>$row[0], "1st"=>$row[1], "2nd"=>$row[2], "3rd"=>$row[3])); 
} 

echo json_encode (array("nresults"=>$response)); 



mysqli_close($con); 

?> 

ある例です。何をしようとしているのは、BBBBを2位、CCCCを3位とする最初のコラムです。ここで

Example Image

私は取得していた結果です。

{"nresults":[{"n_name":"Song Composition ","1st":"AAAA","2nd":"AAAA","3rd":"AAAA"}, 

{"nresults":[{"n_name":"Song Composition ","1st":"BBBB","2nd":"BBBB","3rd":"BBBB"}, 

{"nresults":[{"n_name":"Song Composition ","1st":"CCCC","2nd":"CCCC","3rd":"CCCC"}, 

ここで私がやろうとしていることがあります。

{"nresults":[{"n_name":"Song Composition ","1st":"AAAA","2nd":"BBBB","3rd":"CCCC"}, 

誰かが私を助けることができますか?ありがとう

+0

はい、彼らはその方法で格納されています –

+0

私は最初の値で1番目の値、2番目の値で1番目の値を1行で取得したいと思います。 –

+0

しかし、これは私に第1、第2、第3の値を与え、第1、第2、第3の値を第3の値として与える。 –

答えて

0

これは素晴らしい解決策ではありませんが、あなたに役立つでしょう。

$c = 0; 
while($row=mysqli_fetch_array($result)) 
{ 
    if($c == 0) { 
     array_push($response, "n_name"=>$row[0], "1st"=>$row[2]); 
    } 
    else if ($c == 1) { 
     array_push($response, "2nd"=>$row[3]); 
    } 
    else if ($c == 2) { 
     array_push($response, "3rd"=>$row[4]); 
    } 
    else { 
     break; 
    } 
    $c++; 
} 

より良いアプローチは、SQLクエリを適合させることです。しかし、これを手伝うために、私はテーブルteamnonsportについてさらに詳しい情報が必要です。また、可能なら序数の接尾辞(st、nd、rd)を避けることを提案します。

関連する問題