[英]Retrieving of data from mysql returns the same for 3 rows
我如何以json格式編碼? 如果我把1st放在第一,第二和第三,我收到相同的數據,而如果我把“2nd”=> $ row 1 ,“3rd”=> $ row 1 ,則檢索第一個相同的數據。 如果我試圖輸入3它給我一個空。 請有人幫忙,謝謝。
這是我的PHP
$sql = "select
n_name,
shortcut,
case
when rank = 1 then '1st'
when rank = 2 then '2nd'
when rank = 3 then '3rd'
end as rank
from
team inner join nonsport on team.n_id = nonsport.n_id group by n_name order by n_name asc";
$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[2]));
}
echo json_encode (array("nresults"=>$response));
我的預期產量是
例。 快捷方式有a,b,c,它們的等級a = 1 b = 2 c = 3;
然后1st = a,2nd = b,3rd = c;
我得到的是什么
1st = a,2nd = a,3rd = a
您的查詢為每行返回3個屬性“n_name,shortcut,rank”,排名將為“1st”,“2nd”或“3rd”,因此您不會在一行中獲得三個排名。 我認為你需要在分配之前檢查排名的值,如下所示:
while($row=mysqli_fetch_array($result)){
$array = [];
$array["n_name"] = $row[0];
if($row[1]=='a'){
$array["1st"] = $row[1];
} elseif($row[1]=='b'){
$array["2nd"] = $row[1];
} elseif($row[1]=='c'){
$array["3rd"] = $row[1];
}
array_push($response, $array);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.