需求:先关联数据,最后显示数据限制,小数的位数。
MySQL语句:
SELECT
`ID`,`TDC_PlanningHC`,`TDC_EntryHC`,`TDC_ExitHC`,`Priority_num`,`Priority_char` FROM rmk
WHERE `Fix_Version` = '19A_Block' AND `Status` != 'Cancelled'
ORDER BY
CASE
when `Priority_char` = 'Highest' THEN 1
WHEN `Priority_char` = 'High' THEN 2
when `Priority_char` = 'Medium' THEN 3
WHEN `Priority_char` = 'Low' THEN 4
END,
`Priority_num` DESC
增加WHERE语句可以限制显示的条数。
从test_sizing中查询赋值到数据内:
$TID = $row["ID"];
$Temp = "SELECT * FROM test_sizing WHERE `RMK` = '{$TID}' ";
$Tresult = $mysqli->query($Temp);
$Trow = mysqli_fetch_array($Tresult,MYSQLI_ASSOC);
if($Trow == NULL){
$user->TDC_PlanningHC = "0";
$user->TDC_EntryHC = "0";
$user->TDC_ExitHC = "0";
}else{
for($i = 0;$i < 3;$i++){
$Tsql = "SELECT SUM(Headcount) FROM test_sizing WHERE `RMK` = '{$TID}' AND `Phase` = '{$i}'";
$Tresult = $mysqli->query($Tsql);
$Trow = mysqli_fetch_array($Tresult,MYSQLI_ASSOC);
if($i == 0){
$user->TDC_PlanningHC = $Trow['SUM(Headcount)'];
}else if($i == 1){
$user->TDC_EntryHC = $Trow['SUM(Headcount)'];
}else if($i == 2){
$user->TDC_ExitHC = $Trow['SUM(Headcount)'];
}
}
}
首先,提取ID,根据ID查看test_sizeing表的数据,如相同数据进行,下一步查看Phase数据为0的叠加为TDC_PlanningHC 。如果Phase数据为1的叠加为TDC_EntryHC ,如果Phase数据为2的叠加为TDC_ExitHC。如果都没有,就赋值为字符串0。
增加sprintf("%.1f",$first1)函数,限定小数点后一位。
$firsty=NULL;
$first1=NULL;
$first2=NULL;
$first3=NULL;
for($i = 0;$i < count($djson);$i++){
$firsty = 1 + $i;
$threey = strval($firsty);
$djson[$i]["y"]=$threey;
$first1 = $first1 + floatval($djson[$i]["TDC_PlanningHC"]);
// $three1 = strval($first1);
$three1 = sprintf("%.1f",$first1);
$djson[$i]["TDC_PlanningHC"]=$three1;
$first2 = $first2 + floatval($djson[$i]["TDC_EntryHC"]);
// $three2 = strval($first2);
$three2 = sprintf("%.1f",$first2);
$djson[$i]["TDC_EntryHC"]=$three2;
$first3 = $first3 + floatval($djson[$i]["TDC_ExitHC"]);
// $three3 = strval($first3);
$three3 = sprintf("%.1f",$first3);
$djson[$i]["TDC_ExitHC"]=$three3;
}
如代码。最好是在随后限制,这样结果明显。