Инструменты пользователя

Инструменты сайта


doc:1513:643.mgul.15131-01_12_01

Это старая версия документа!


Архив, содержащий программный код и структуру каталогов веб-приложения.

Корневой каталог веб-приложения

conn.php

conn.php

conn.php
<? $mysqli =  mysqli_connect('address','ReadOnlyLogin', 'ReadOnlyPass','DB') or die ("Connection error: ". mysqli_error($mysqli)); ?>
<style>
/* стили таблицы */
th {
  text-indent: 0px;
  border-collapse: collapse;
  background: #e8edfa;
  border-bottom: 1px solid #fff;
  color: #500;
  font-weight: 700;
  border-top: 0px solid transparent;
  padding: 2px;
  text-align:center;
}
td {
  text-indent: 0px;
  border-collapse: collapse;
  background: #e8edff;
  border-bottom: 1px solid #fff;
  color: #500;
  border-top: 0px solid transparent;
  padding: 2px;
  text-align:center;
}
tr:hover td {background: #eeddff;}
tr{text-indent: 1px;}
tr:
</style>
 
<?
/* Проверка на соеденение с базой данных */
if (!$mysqli)
	{
		die ("Error!");
		mysqli_close($mysqli);
	}
else
{
	/* подготовка запроса на получение данных для последних двадцати сессий передачи */
$query = 'SELECT sd.Num as Num,sd.Type as Type,sd.Value as Value,li.Date as Date,li.uid as Unit 
FROM save_data sd 
INNER JOIN (
	SELECT Num_i as Num, Date, ul.uname as uid 
	FROM info inf 
	INNER JOIN (
		SELECT uNum,uName as uname FROM units_list) as ul
	ON inf.Prib_id = ul.uNum ORDER BY inf.Num_i DESC LIMIT 20) as li
ON li.Num = sd.Num';
/* Добавление к запросу фильтра */
if(isset($_GET['filter']))
{
	$query .= ' '.$_GET['filter'];
}
 
$query .= '  ORDER BY sd.Num ASC';
/* выполнение запроса и формирование из результата массива, по которому будет построена таблица */
$result = $mysqli->query("$query");
	if(!$result)
	{
		die("Wrong query!");
	}
	else
	{
		$t_mas = array();
		while($myrow = mysqli_fetch_array($result,MYSQLI_ASSOC))
		{
			if(!in_array($myrow['Type'], $t_mas))
			{
				array_push($t_mas, $myrow['Type']);
			}
		}
		rsort($t_mas);
		array_unshift($t_mas, "Unit","Date");
		mysqli_data_seek($result, 0);
		$i = 0;
		$ss = -1;
		while($infrow = mysqli_fetch_array($result,MYSQLI_ASSOC))
		{
			$nob = $infrow['Num'];
			if($ss != $nob)
			{
				$i++;
				$ss = $nob;
			}
			$mass[$i][array_search($infrow['Type'], $t_mas)] = $infrow['Value'];
			$mass[$i][array_search("Unit", $t_mas)] = $infrow['Unit'];
			$mass[$i][array_search("Date", $t_mas)] = $infrow['Date'];
		}
		unset($i);
 
		$title .= '<thead><tr>';
		for($i=0; $i<count($t_mas); $i++)
		{ 
			$title .= '<th>'.$t_mas[$i].'</th>';
		}
		unset($i);
		for($i=1; $i<count($mass)+1; $i++)
		{
			$max .= '<tr>';
			for($j=0; $j<count($t_mas); $j++)
			{
				$max .= '<td>'.$mass[$i][$j].'</td>';
			}
			$max .= '</tr>';
		} 
		$list = $title.'</tr></thead><tbody>'.$max.'</tbody>';
		echo '<table width="100%" style="font-size: 11px">'.$list.'</table>';
	}
}
mysqli_close($mysqli);
?>

index.html

index.html

index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Home page</title>
</head>
<body>
	<p><a href="/admin">Панель управления</a></p>
	<p><a href="/conn.php">Дебаг-монитор</a></p>
	<p><a href="/mainexport.html">Данные за интервал времени</a></p>
</body>
</html>

mainexport.html

mainexport.html

mainexport.html
<!DOCTYPE html>
<html>
<head>
	<title> Export page </title>
	<meta charset="utf-8">
	<!-- jQuery -->
	<script type="text/javascript" src="/core/lib/jquery.min.js"></script>
	<!-- Script for moment lib -->
	<script type="text/javascript" src="/core/lib/moment.js"></script>
	<!--Load Script and Stylesheet for DATETIMEPICKER -->
	<script type="text/javascript" src="core/lib/datetimepicker/jquery.simple-dtpicker.js"></script>
	<link type="text/css" href="core/lib/datetimepicker/jquery.simple-dtpicker.css" rel="stylesheet" />
	<!---->
	<style type="text/css">
.hidden{
	visibility: hidden;
}
 
	</style>
</head>
<body>
<form id="zmnx">
<b> Выберите как вы хотите получить результат </b>
<p><input type="radio" name="how" value="json">JSON лог-файл</p>
<p><input type="radio" name="how" value="table">Таблица данных</p>
</form>
 
<form id="jsonly" class="hidden">
 
<label for="firstt">Выберите начало временного интервала</label>
<p><input id="firstt" type="text" name="firstt" value=" YYYY-MM-DD HH:mm "></p><br>
 
<label for="secondt">Выберите конец временного интервала</label>
<p><input id="secondt" type="text" name="secondt" value=" YYYY-MM-DD HH:mm "></p>
 
<p id="point"><input type="submit" id="okey" value="Принять" onclick="event.preventDefault();getinfo();"></p>
 
</form>
 
<center><div id="outres"></div></center>
</body>
</html>
<script type="text/javascript">
 
function getinfo()
{
	var fdate = document.getElementById('firstt').value + ':00';
	var sdate = document.getElementById('secondt').value + ':00';
	if((moment(fdate, 'YYYY-MM-DD HH:mm:ss',true).isValid()) && (moment(sdate, 'YYYY-MM-DD HH:mm:ss',true).isValid()))
	{
 
		if($('#units').length && $('#units').val() != '')
		{
			$.get('core/deb.php',{fdate: fdate,sdate: sdate, manualmode: '1',unitid: $('#units').val()},function(back){document.getElementById('outres').innerHTML=back;});
			$('#outres').html('<p>Загрузка ...<p>');
		}
		else if(!($('#units').length))
		{
			$.get('core/deb.php',{fdate: fdate,sdate: sdate,fileback: '1'},function(back){document.getElementById('outres').innerHTML=back;});
			$('#outres').html('<p>Загрузка ...<p>');
		}
		else
		{
			alert("Выберите прибор.");
		}
	}
	else
	{
		alert("Заполните все поля корректно.");
	}
}
 
$(function(){
	$('#firstt').appendDtpicker({"locale": "ru","closeOnSelected": true,"autodateOnStart": false,"minuteInterval": 15, "dateFormat": "YYYY-MM-DD hh:mm"});
	$('#secondt').appendDtpicker({"locale": "ru","closeOnSelected": true,"autodateOnStart": false,"minuteInterval": 15, "dateFormat": "YYYY-MM-DD hh:mm"});
	var d = new Date();
	$('#secondt').change(function() {
		$('#firstt').appendDtpicker({
			maxDate: $('#secondt').val() // when the end time changes, update the maxDate on the start field
		});
	});
	$('#firstt').change(function() {
		$('#secondt').appendDtpicker({
			minDate: $('#firstt').val() // when the start time changes, update the minDate on the end field
		});
	});
	$("[name='how']").change(function() {
		if($('input[name=how]:checked').val() == 'table')
		{
			var inp = document.createElement('select');
			inp.id = 'units';
			//jsonly.insertBefore(inp, jsonly.okey);
			$(inp).insertBefore('#point');
			var url = 'core/backend.php';
        	$.get(url,"unitslist=1",function (result) {
                    $('#units').html('<option value=""> -- Выберите прибор -- </option>'+result);
                })
		}
		else { $('#units').remove(); }
		$('#jsonly').removeClass("hidden");
	});
	// trigger change event so datapickers get attached
	$('#secondt').trigger('change');
	$('#firstt').trigger('change');
});
</script>

Каталог export

Каталог core

altread.php

altread.php

altread.php
<?
$str = $_POST;
list($user, $pass, $inject) = explode(';', trim($str, ';'));
$mysqli =  mysqli_connect('address',$user, $pass,'DB');
if (!$mysqli)
	{
		die ("Error!");
		mysqli_close($mysqli);
	}
else
{
$result = $mysqli->query("$inject");
	if(!$result)
	{
		die("Empty result!");
	}
	else
	{
		$t_mas = [];
		$v_mas = [];
		$i = -1;
		$ind = -1;
		$test = mysqli_fetch_array($result,MYSQLI_ASSOC);
		mysqli_data_seek($result, 0);
		if ($test['Num'] != NULL)
		{
			while($myrow = mysqli_fetch_array($result,MYSQLI_ASSOC))
			{
				if($myrow['Num'][0] != $ind)
				{
					$i++;
					$ind = $myrow['Num'][0];
					$t_mas[$i] .= 'Session number'.';'.$myrow['Type'].';';
					$v_mas[$i] .= $myrow['Num'][0].';'.$myrow['Value'].';';
				}
				else
				{
					$t_mas[$i] .= $myrow['Type'].';';
					$v_mas[$i] .= $myrow['Value'].';';
				}
			}
			for($n=0; $n < count($t_mas); $n++)
			{
				$text .= $t_mas[$n]."\r\n".$v_mas[$n]."\r\n\r\n";
			}
		}
		else
		{
			$cnt = 1;
			while($myrow = mysqli_fetch_array($result,MYSQLI_ASSOC))
			{
				foreach ($myrow as $key => $value)
				{
					if($cnt = 1){$title .= $key.';';}
					$v_string .= $value.';';
				}
				$v_string .= "\r\n";
			}
			$text = $title."\r\n".$v_string."\r\n\r\n";
		}
		echo $text; 
	}
}
mysqli_close($mysqli);
?>

backend.php

backend.php

backend.php
<?
require_once 'baseinfo.php';
 
/* получение параметров для устройства с переданным ID */
if(isset($_GET['unitnow']))
{
	$id = $_GET['unitnow'];
	$buff = array();
	$result = $mysqli->query("SELECT DISTINCT `Type` FROM `save_data` sd INNER JOIN (SELECT `Num_i` FROM `info` WHERE `Prib_id` = $id ORDER BY `Num_i` DESC LIMIT 1) inf ON inf.Num_i = sd.Num WHERE (`Type` NOT LIKE 'system_%') AND (`Type` NOT LIKE '%addr')");
	if(mysqli_num_rows($result))
	{
		while($row = mysqli_fetch_array($result))
		{
			$buff[] = array('title'=>$row['Type']);
		}
	$away = array('back'=>'success','sens'=>$buff);
	}
	else
	{
		$away = array('back'=>'error');
	}
	print json_encode($away);
}
 
/* получение списка устройств */
if(isset($_GET['unitslist']))
{
	$result = $mysqli->query("SELECT uNum,uName,Serial FROM units_list");
	while($rows = mysqli_fetch_array($result))
	{
		$back .= '<option value="'.$rows['uNum'].'">'.$rows['uName'].' ('.$rows['Serial'].')</option>';
	}
	print_r($back);
}
/* изменение данных о адресе датчика */
if(isset($_POST['update']))
{
 	$upd = $_POST['update'];
 	$str = '';
 	foreach ($upd as $headkey => $headvalue) 
 	{
 		$str = "UPDATE `Production`.`sensors_adr` SET `".$headvalue[1]."`='".$headvalue[2]."' WHERE id=".$headvalue[0];
 		$mysqli->query("$str");
 	}	
}
/* внесение нового датчика */
elseif(isset($_POST['insert']))
{
	$ins = $_POST['insert'];
	$columns = '`timestamp`,';
	$values = 'NOW(),';
	foreach ($ins as $key => $value) 
	{
		$columns .= '`'.$value[0].'`,';
		$values .= "'".$value[1]."',";
	}
	$str = "INSERT INTO `Production`.`sensors_adr` ($columns) VALUES ($values)";
	$str = str_replace(',)', ')', $str);
	$mysqli->query("$str");
}
/* проверка наличие параметра адреса датчика и его значения в передаваемых устройством данных */
elseif(isset($_GET['unit_addr_exist']))
{
	$unit = $_GET['unit_addr_exist'];
	$result_array = array();
	$away = array();
	$text = "SELECT `sd`.`Num`,`sd`.`type`,`sd`.`value` FROM `Production`.`save_data` as `sd` INNER JOIN (SELECT `Num_i` FROM `Production`.`info` WHERE `Prib_id`='$unit' ORDER BY `Num_i` DESC LIMIT 1) inf  ON `sd`.`Num` = `inf`.`Num_i` WHERE `sd`.`Type` LIKE '%addr'";
	$result = $mysqli->query("$text");
	if($result->num_rows)
	{
		while($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
		{
			$result_array[] = ['Type'=>str_replace('_addr','',$row['type']),'Val'=>$row['value']];
		}
		$away = array('error'=>'false','data'=>$result_array);
	}
	else
	{
		$away = array('error'=>'true');
	}
	echo json_encode($away);
}
?>

baseinfo.php

baseinfo.php

baseinfo.php
<? 
$mysqli =  mysqli_connect('address','login','pass','DB');
?>

deb.php

deb.php

deb.php
<?
ini_set('memory_limit', '512M'); // изменение лимита памяти для скрипта
header('Content-Type: text/html; charset=UTF-8'); 
require_once 'baseinfo.php'; // подключение файла хранящем информацию о соединение с базой данных
 
/* функция формирование результатов калибровки в массив */
function finish($mysqli,$qur)
{
	$result = $mysqli->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)<strtotime('2019-01-24 17:31:43')): $fdate = '2019-01-24 17:31:43'; endif;
				$unit = $_GET['unitid'];
				$list = $mysqli->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<count($t_mas); $i++)
				{ 
					$infile .= $t_mas[$i].";"; // запись в файл из массива заголовков
				}
				$infile .= "\n"; 
				fwrite($fd, iconv('utf-8', 'windows-1251', $infile)); // вносим заголовки в файл
				//mysqli_data_seek($result, 0); // возвращение указателя в начало результата
				unset($i);
				$i = 0;
				$ss = -1;
				while($infrow = mysqli_fetch_array($result,MYSQLI_ASSOC)) // заполнение массива значений
				{
					$nob = $infrow['Date'];
					if($ss != $nob)
					{
						$i++;
						$ss = $nob;
					}
					$mass[$i][array_search($infrow['Type'], $t_mas)] = $infrow['Value'];
					$mass[$i][array_search("Date", $t_mas)] = $infrow['Date'];
				}
				unset($i);
				unset($infile);
				$infile = '';
				for($i=1; $i<count($mass)+1; $i++)
				{
					for($j=0; $j<count($t_mas); $j++)
					{
						$infile .= $mass[$i][$j].";";
					}
					$infile .= "\n";
					fwrite($fd, iconv('utf-8', 'windows-1251', $infile)); // построчное заполнение файла в цикле
					unset($infile);
				} 
				$return = '<a href="'.$makeat.'" download>Скачать таблицу</a>';
			}
			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 '<a href="'.$makeat.'" download>Скачать log-файл</a>';
	}
	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);
}
?>

jsonadd.php

jsonadd.php

jsonadd.php
<?
require_once '../core/baseinfo.php';
 
if (isset($_POST['fromtable'])) // если пришёл ПОСТ с содержимым экселя
{
$arr = json_decode(str_replace('][', ',', $_POST['fromtable']), true);
$unit_num = $arr[0]['AKey'];
$result = mysqli_fetch_array($mysqli->query("SELECT `OPid` FROM `units_list` WHERE `uNum`='$unit_num'"));
if($result != NULL)
{
	foreach ($arr as $key => $value)
	{
		$mysqli->query("INSERT `Info`(`Date`,`Prib_id`,`OpNum`) VALUES (NOW(),$unit_num,$result[OPid])");
		$lastid = mysqli_insert_id($mysqli);
		foreach ($value as $got => $it) 
		{
			if($got!='AKey')
			{
				$word .= "('$lastid','$got','$it')";
			}
		}
		if($word!='')
		{	
			$str = 'INSERT `Save_data`(`Num`,`Type`,`Value`) VALUES '.$word;
			$query_str = str_replace(')(', '),(', $str);
			$mysqli->query("$query_str");
		}
		$word = '';
	}
	mysqli_close($mysqli);
}
else{}
}
 
elseif(isset($_POST)) // если пришёл пост извне
{
$inmass = file_get_contents('php://input');
$arr = json_decode($inmass,true);
if($arr['system']['Akey']!==NULL) // ищем ключ в массиве с вложенностями
{
	$Key = $arr['system']['Akey'];
	$done = $mysqli->query("SELECT `uNum`,`OPid`,`IDob`,`x`,`y` FROM `units_list` WHERE `AKey`='$Key'"); // если ключ есть в базе, то получаем информацию о приборе
	$result = mysqli_fetch_array($done);
	if($result!=NULL)
	{
		$str = 'INSERT `Save_data`(`Num`,`Type`,`Value`) VALUES ';
		$unit_num = $result[uNum];
		$mysqli->query("INSERT `Info`(`Date`,`Prib_id`,`OpNum`,`ObjectId`,`x`,`y`) VALUES 
			(NOW(),$unit_num,$result[OPid],$result[IDob],$result[x],$result[y])");
		$lastid = mysqli_insert_id($mysqli);
		/* формирование названия параметра с учётом иерархие вложенности */
		$path = array();
		$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr), RecursiveIteratorIterator::SELF_FIRST);
		foreach ($it as $key => $value) 
		{
    		$path = array();
    		if(!is_array($value) && $key != 'Akey')
    		{
    			for ($count = $it->getDepth()+1; $count && $count--;)
    			{
        			array_unshift($path, $it->getSubIterator($count)->key());
    			}
    			$path = implode('_', $path);
    			$str .= "('$lastid','$path','$value')";
    		}
		}
		$query_str = str_replace(')(', '),(', $str);
		$mysqli->query("$query_str");
		mysqli_close($mysqli);
	}
}
else {} // если нет ключа, то игнорируем
}
?>

read.php

read.php

read.php
<?
$str = file_get_contents('php://input');
list($user, $pass, $inject) = explode(';', trim($str, ';')); // получение логина и пароля пользователя БД и SQL запроса
$mysqli =  mysqli_connect('localhost',$user, $pass,'production'); 
if (!$mysqli)
	{
		die ("Error!");
		mysqli_close($mysqli); // проверка соединения с БД
	}
else
{
$result = $mysqli->query("$inject");
	if(!$result)
	{
		die("Wrong query!");
	}
	else
	{
		$t_mas = [];
		$v_mas = [];
		$i = -1;
		$test = mysqli_fetch_array($result,MYSQLI_ASSOC);
		mysqli_data_seek($result, 0);
		if ($test['Num'] != NULL)
		{
		/* формирование строк CSV формата */
		while($myrow = mysqli_fetch_array($result,MYSQLI_ASSOC))
		{
 
				if($myrow['Num'][0] != $ind)
				{
					$i++;
					$ind = $myrow['Num'][0];
					$t_mas[$i] .= 'Session number'.';'.$myrow['Type'].';';
					$v_mas[$i] .= $myrow['Num'][0].';'.$myrow['Value'].';';
				}
				else
				{
					$t_mas[$i] .= $myrow['Type'].';';
					$v_mas[$i] .= $myrow['Value'].';';
				}
		}
		for($n=0; $n < count($t_mas); $n++)
		{
			$text .= $t_mas[$n]."\r\n".$v_mas[$n]."\r\n\r\n";
		}
		}
		else
		{
		$cnt = 1;
		while($myrow = mysqli_fetch_array($result,MYSQLI_ASSOC))
		{
			foreach ($myrow as $key => $value)
			{
				if($cnt = 1){$title .= $key.';';}
				$v_string .= $value.';';
			}
			$v_string .= "\r\n";
		}
		$text = $title."\r\n".$v_string."\r\n\r\n";
		}
		echo $text; 
	}
}
mysqli_close($mysqli);
?>

Каталог img

Каталог img


Каталог lib

Каталог lib

doc/1513/643.mgul.15131-01_12_01.1560999981.txt.gz · Последние изменения: 2019/06/20 06:06 — deimozzz