get_monitor_chart.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. include("./connect_sql.php");
  3. $json = file_get_contents('../../r03/display_info.json');
  4. $display_info = json_decode($json, true);
  5. $type = "";
  6. $unit = "";
  7. $label = "";
  8. $ajax = [];
  9. if (isset($_GET["monitor"])) {
  10. $monitor = $_GET["monitor"];
  11. $type = explode('-', $monitor)[0];
  12. }
  13. $chart = [];
  14. $key = array_search($type, array_column($display_info, 'type'));
  15. $unit = $display_info[$key]["unit"];
  16. $label = $display_info[$key]["label"];
  17. switch ($type) {
  18. case "SIS":
  19. case "SID":
  20. //$display .= '],[Depth';
  21. $sql = " SELECT [Date],count(DISTINCT [Depth])
  22. FROM [BIMMonitor].[dbo].[{$type}_Data] WHERE [EquipmentID] = '{$monitor}' GROUP BY [Date]";
  23. $stmt = sqlsrv_query($conn, $sql);
  24. $depth = "";
  25. while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)) {
  26. $depthCount = $row[1];
  27. }
  28. for ($i = 2; $i < $depthCount; $i++) {
  29. $depth = $depth . ",[" . $i * 0.5 . "]";
  30. }
  31. $sql = "SELECT *
  32. FROM (
  33. SELECT [Date], [TotalDisplacement], [Depth], [WarningValue], [ActionValue]
  34. FROM [BIMMonitor].[dbo].[{$type}_Data]
  35. WHERE [EquipmentID] = '{$monitor}' AND [WarningValue] <> 'NULL' AND [WarningValue] <> '---'
  36. ) o
  37. PIVOT (
  38. MAX([TotalDisplacement])
  39. FOR [Depth] IN ([0.5] ${depth})
  40. ) n;";
  41. break;
  42. case "TI":
  43. $sql = "SELECT *
  44. FROM (
  45. SELECT [Date], [Direction], [TotalTilt], '±264' AS [WarningValue], '±330' AS [ActionValue]
  46. FROM [BIMMonitor].[dbo].[TI_Data]
  47. WHERE [EquipmentID] like '%{$monitor}%'
  48. ) o
  49. PIVOT (
  50. MAX([TotalTilt])
  51. FOR [Direction] IN ([1-3], [2-4])
  52. ) n;";
  53. break;
  54. case "SB":
  55. $sql = "SELECT [SB_Data].[Date], [TotalSettlement], [WarningValue], [ActionValue]
  56. FROM [SB_Data] JOIN [SB_Warning] ON [SB_Data].[EquipmentID] = [SB_Warning].[EquipmentID]
  57. WHERE [SB_Data].[EquipmentID] = '{$monitor}';";
  58. break;
  59. case "SM":
  60. $sql = "SELECT [Date], [TotalSettlement], '±30' AS [WarningValue], '±50' AS [ActionValue]
  61. FROM [SM_Data]
  62. WHERE [EquipmentID] = '{$monitor}';";
  63. break;
  64. case "SP":
  65. $sql = "SELECT [SP_Data].[Date], [WaterPressure], [HighWarningValue], [LowWarningValue],[HighActionValue],[LowActionValue]
  66. FROM [SP_Data] JOIN [SP_Warning] ON [SP_Data].[EquipmentID] = [SP_Warning].[EquipmentID]
  67. WHERE [SP_Data].[EquipmentID] = '{$monitor}';";
  68. break;
  69. }
  70. $fetchResult = sqlsrv_query($conn, $sql);
  71. while ($row = sqlsrv_fetch_array($fetchResult, SQLSRV_FETCH_ASSOC)) {
  72. array_push($chart, $row);
  73. }
  74. if ($fetchResult === false) {
  75. if (($errors = sqlsrv_errors()) != null) {
  76. foreach ($errors as $error) {
  77. echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
  78. echo "code: " . $error['code'] . "<br />";
  79. echo "message: " . $error['message'] . "<br />";
  80. echo ($sql . "<br />");
  81. var_dump($row);
  82. }
  83. }
  84. }
  85. $ajax["label"] = $label;
  86. $ajax["unit"] = $unit;
  87. $ajax["chart"] = $chart;
  88. echo (json_encode($ajax));