2017-02-19 7 views
0

group_concatを使用してjsonで解析すると、値が間違った順序で取得されるのはなぜですか?ここでSQL group_concatなぜ値が間違っていますか?

は、ここに私のコード

$sql = "select 
      e_name, 
      a_shortcut, 
      GROUP_CONCAT(case 
      when t_rank = 1 then a_shortcut 
      when t_rank = 2 then a_shortcut 
      when t_rank = 3 then a_shortcut 
      end separator ',') as group_con 
     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)) 
     { 
     $ar=explode(',',$row['group_con']); 
     array_push($response, array("e_name"=>$row[0],"First"=>$ar[0], 
     "Second"=>$ar[1], "Third"=>$ar[2])); 

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

ですテーブルから選択するときにここで

くれ

{"nresults":[ 

{"e_name":"AAA","First":"3rd","Second":"2nd","Third":"1st"}, 
{"e_name":"BBB","First":"2nd","Second":"1st","Third":"3rd"} 
を与えている出力は、私の予想出力

{"nresults":[ 

{"e_name":"AAA","First":"1st","Second":"2nd","Third":"3rd"}, 

{"e_name":"BBB","First":"1st","Second":"2nd","Third":"3rd"} 
+0

結果を整理して、必要な順序がわかるようにしてください。 –

+0

はデータベースにありますか? – orange

+0

'内部結合 'を行う前にa_shortcutを取得しているテーブルから' order by'を使用してください。 – ultrajohn

答えて

0

使用order byですinner joinを実行する前にa_shortcutを取得しています。

+0

それは私にエラーを与える – orange

+0

あなたはエラーの詳細を投稿できますか? – ultrajohn

+1

警告:mysqli_fetch_array()はmysqli_resultになることを期待しています.22行目のC:\ xampp \ htdocs \ atfest \ cpanel \ mobile \ NonSportsResult.phpに指定されたブール値を返します。 {"nresults":[]} – orange

関連する問題