query("$qur"); mysqli_close($mysqli); $mass = array(); $buff = array(); $alt = array(); $i = -1; $n = -1; $searchindex = 0; while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { $search = $row['uName'].','.$row['serial']; if(isset($mass[$search])) { $i = $mass[$search]; } else { ++$n; $i = $n; $mass[$search] = $i; } $buff[$i]['uName'] = $row['uName']; $buff[$i]['serial'] = $row['serial']; $alt[$i][$row['sensor']][] = ['datetime'=>$row['timestamp'],'data'=>json_decode($row['ratio'],false)]; $searchindex = array_search($row['sensor'], array_column($buff[$i]['sensors'],'sensor')); if ((false !== $searchindex) && isset($searchindex)) { $buff[$i]['sensors'][$searchindex] = ['sensor'=>$row['sensor'],'calibr'=>$alt[$i][$row['sensor']]]; } else { $buff[$i]['sensors'][] = ['sensor'=>$row['sensor'],'calibr'=>$alt[$i][$row['sensor']]]; } //$buff[$i]['sensors'][] = ['sensor'=>$row['sensor'],'calibr'=>['datetime'=>$row['timestamp'],'data'=>json_decode($row['ratio'],false)]]; } echo json_encode($buff,JSON_UNESCAPED_UNICODE); } /* --------------------------------------------------- */ /* Данные калибровки */ if(isset($_GET['calibration'])) { $line = 'SELECT mu.sensor,mu.timestamp,mu.ratio,li.uname as uName,li.Serial as serial FROM multiplier as mu INNER JOIN (SELECT uNum,uName as uname,Serial from units_list) as li ON li.uNum = mu.unit'; switch ($_GET['calibration']) { case 'full': // все данные break; case 'filtid': // данные устройства с указанным id $line .= ' WHERE mu.unit='.$_GET['id']; break; } finish($mysqli,$line); } /* --------------------------------------------------- */ /* Данные за интервал времени */ elseif (isset($_GET['manualmode'])) { $return = ''; $infile = ''; $t_mas = array(); $mass = array(); switch($_GET['manualmode']) { case 1: if((isset($_GET['fdate'])) && (isset($_GET['sdate'])) && (isset($_GET['unitid']))) { $fdate = $_GET['fdate']; $sdate = $_GET['sdate']; if(strtotime($sdate)>strtotime("now")): $sdate = date("Y-m-d H:i:s"); endif; if(strtotime($fdate)query("SELECT DISTINCT Type FROM save_data sd INNER JOIN (SELECT Num_i from info WHERE `Date` BETWEEN '$fdate' AND '$sdate' AND Prib_id = $unit) inf ON sd.Num = inf.Num_i WHERE (`Type` NOT LIKE 'system_%')"); $about = mysqli_fetch_array($mysqli->query("SELECT uName,Serial FROM units_list WHERE uNum = $unit")); $result = $mysqli->query(" SELECT sd.Type as Type,sd.Value as Value,li.Date as Date FROM `save_data` as sd INNER JOIN ( SELECT `Date`,`Num_i` FROM `info` WHERE (`Date` BETWEEN '$fdate' AND '$sdate') AND (Prib_id = $unit) ) as li ON sd.Num = li.Num_i WHERE (`Type` NOT LIKE 'system_%')",MYSQLI_USE_RESULT); $makeat = '../export/last_export.csv'; $fd = fopen($makeat, 'w'); $infile = 'Прибор: ;'.$about['uName'].' ('.$about['Serial'].'); ; Интервал: ;'.$fdate.'; / ;'.$sdate.";\n"; fwrite($fd,iconv('utf-8', 'windows-1251',$infile)); while($myrow = mysqli_fetch_array($list,MYSQLI_ASSOC)) // составление массива заголовков { if(!in_array($myrow['Type'], $t_mas)) { array_push($t_mas, $myrow['Type']); } } rsort($t_mas); array_unshift($t_mas,"Date"); unset($infile); for($i=0; $iСкачать таблицу'; } else { $return = 'Error'; } mysqli_close($mysqli); break; } echo $return; } elseif ((isset($_GET['fdate'])) && (isset($_GET['sdate']))) { $fdate = $_GET['fdate']; $sdate = $_GET['sdate']; if(strtotime($sdate)>strtotime("now")): $sdate = date("Y-m-d H:i:s"); endif; if(strtotime($fdate)>strtotime("now")): $fdate = '2019-01-24 17:31:43'; endif; $result = $mysqli->query("SELECT sd.Type,sd.Value,sd.Num,inf.Date,ul.uName,ul.Serial FROM save_data as sd INNER JOIN (SELECT `Num_i`, `date`, `Prib_id` FROM `info` WHERE `Date` BETWEEN '$fdate' AND '$sdate') as inf ON inf.Num_i = sd.Num INNER JOIN (SELECT DISTINCT `uName`,`uNum`,`Serial` FROM `units_list`) as ul ON ul.uNum = inf.Prib_id",MYSQLI_USE_RESULT); // выполнение запроса $first = mysqli_fetch_array($result,MYSQLI_ASSOC); $i = $first['Num']; /* формирование файла с результатом */ if(isset($_GET['fileback'])) { $makeat = '../export/log.txt'; $fd = fopen($makeat, 'w'); fwrite($fd, '{'); fwrite($fd,'"'.$i.'":{"Date":"'.$first['date'].'","uName":"'.$first['uName'].'","serial":"'.$first['Serial'].'","data":{"'.$first['Type'].'":"'.$first['Value'].'"'); while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { if($row['Num']!=$i) { $i = $row['Num']; fwrite($fd,'}},"'.$i.'":{"Date":"'.$row['date'].'","uName":"'.$row['uName'].'","serial":"'.$row['Serial'].'","data":{'); } else { fwrite($fd, ','); } fwrite($fd,'"'.$row['Type'].'":"'.$row['Value'].'"'); } fwrite($fd, '}}}'); echo 'Скачать log-файл'; } else /* возвращение результата как текста */ { echo '{'; echo '"'.$i.'":{"Date":"'.$first['date'].'","uName":"'.$first['uName'].'","serial":"'.$first['Serial'].'","data":{"'.$first['Type'].'":"'.$first['Value'].'"'; while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) { if($row['Num']!=$i) { $i = $row['Num']; echo '}},"'.$i.'":{"Date":"'.$row['date'].'","uName":"'.$row['uName'].'","serial":"'.$row['Serial'].'","data":{'; } else { echo ','; } echo '"'.$row['Type'].'":"'.$row['Value'].'"'; } echo '}}}'; } mysqli_free_result($result); mysqli_close($mysqli); } ?>