JSON编码返回相同的类型

时间:2017-02-06 12:22:38

标签: php android mysql json

我如何以json格式编码?如果我放第1个,我在第1个,第2个和第3个收到相同的数据,而如果我放第2个" => $ row 1,"第3个" = > $ row 1正在检索与第一个相同的数据。请有人帮忙,谢谢。

这是我的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放入第二列,将CCCC放入第三列。

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"},

有人能帮助我吗?感谢

1 个答案:

答案 0 :(得分: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)。