PHP+MySQL開發小專案的集合筆記(三)關聯資料庫,並限制小數位數
阿新 • • 發佈:2018-12-11
需求:先關聯資料,最後顯示資料限制,小數的位數。
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; }
如程式碼。最好是在隨後限制,這樣結果明顯。