Персональная карточка Орион Про на PHP на собственном сервере. Часть 2. Вывод в браузер.

Продолжаем тему «Персональной карточки» Орион Про своими руками.
В этой статье мы рассмотрим один из способов вывода информации по проходу сотрудника в браузер. В прошлом мы рассмотрели основные принципы и выполнили необходимые действия по подготовке базы данных Орион Про для решения нашей задачи. Теперь займемся серверной частью.
Нам потребуется сервер Apache (можно и любой другой), а так же установленный PHP, в котором обязательно должен присутствовать модуль SQLSRV.

Установка, настройка и функции модуля SQLSRV.

Для вывода мы будеи использовать 2 файла.
1й — pcard01.php, в нем мы осуществляем подключение к БД, формируем запрос для получения нужных нам данных по GUID, записанному в созданной нами ранее таблице pCard01, выполняем его и подготавливаем полученные данные для вывода.
2й — pcard-01.html, к нему мы обращаемся в браузере для вывода информации. Файл осуществляет асинхронный запрос к pcard01.php для получения данных через библиотеку jquery, не забудьте ее скачать и закинуть на сервер.

Содержимое pcard01.php:

<?php 
 
//Соединяемся с БД
$serverName = "<адрес сервера>\SQLSERVER2012";
$connectionInfo = array( "Database"=>"demobase1_20_3_4", "UID"=>"<логин сервера>", "PWD"=>"<пароль>", "CharacterSet" => "UTF-8" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
 
if($conn ===  false) 
	die( print_r( sqlsrv_errors(), true));
 
//Устанавливаем кодировку UTF-8
sqlsrv_query("SET NAMES utf8");
sqlsrv_query("set character_set_client='utf8'");
sqlsrv_query("set character_set_results='windows'");
sqlsrv_query("set collation_connection='utf8_general_ci'");
 
 
//Формируем запрос
 
$sql = "Select 
pLogdata.TimeVal, --Время
Events.Contents,  --Событие 
pLogData.Remark,  --Описание точки доступа
pList.Name,       --Фамилия
pList.FirstName,  --Имя
pList.MidName,    --Отчество
pList.Picture,    --Фото
pPost.Name AS Post, 
pDivision.Name AS Division   
 
FROM 
pLogdata
  LEFT JOIN Events
    on Events.Event = pLogData.event
  LEFT JOIN pList
    on pLogData.HozOrgan = pList.ID
  LEFT JOIN pPost
    on PPost.id = pList.Post
  LEFT JOIN pDivision
    on PDivision.id = pList.Section  
  LEFT JOIN pCard01 
    ON pCard01.GUID = pLogData.GUID
 
 
WHERE 
pCard01.GUID = pLogData.GUID
";
 
 
$result = sqlsrv_query($conn, $sql);
if($result === false)
	die(print_r(sqlsrv_errors(), true));
 
 
//Оформляем вывод в таблицу
 
$table = "<table width=70% style=font-size:15pt; font-color:white border=1  align=CENTER >\n";
 
//Конвертируем фотографию
 
//Создание тега <img> и передача двоичных данных
 
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) 
{
	//Проверка на пустую картинку
	if ($row['Picture'] == NULL) $imageSrc = '0.jpg'; // Надо в переменную что-то положить, если в базе пусто 
	else $imageSrc = 'data:image/jpeg;base64,' . base64_encode($row['Picture']);
 
 
	$table .= "<tr align=top width=70%>\n";
	$table .= "<td rowspan=10 valign=top width=10% bgcolor=lightyellow>".'<img valign=top src="'.$imageSrc.'" width="400" height="500">'."</td>\n";
	$table .= "<td valign=top height=30% bgcolor=MidnightBlue><b><font color=white>Дата:</b> ".$row['TimeVal']->format('Y-m-d H:i:s')."</td></tr>\n";
	$table .= "<td valign=top width=30% bgcolor=MidnightBlue><b><font color=white>Событие:</b> ".$row['Contents']."</td></tr>\n";
	$table .= "<tr><td valign=top width=30% bgcolor=MidnightBlue><b><font color=white>Точка прохода:</b>: ".$row['Remark']."</td></tr>\n";      
	$table .= "<tr><td valign=top width=30% bgcolor=MidnightBlue style=font-size:25pt><b><font color=white>Фамилия:</b><br> ".$row['Name']."</td></tr>\n";
	$table .= "<tr><td valign=top width=30% bgcolor=MidnightBlue style=font-size:25pt><b><font color=white>Имя:</b><br> ".$row['FirstName']."</td></tr>\n";
	$table .= "<tr><td valign=top width=30% bgcolor=MidnightBlue style=font-size:25pt><b><font color=white>Отчество:</b><br> ".$row['MidName']."</td>\n";
	$table .= "<tr><td valign=top width=30% bgcolor=MidnightBlue style=font-size:15pt><b><font color=white>".$row['Division']."</td>\n";
	$table .= "<tr><td valign=top width=30% bgcolor=MidnightBlue style=font-size:15pt><b><font color=white>".$row['Post']."</td>\n";
}
 
$table .= "</table>\n";
 
// Выводим заполненую таблицу на экран
echo $table;    
?>

Содержимое pcard-01.html:

<html>
	<head>
		<title>Персональная карточка</title>
		<link rel="icon" href="icon.png" type="image/x-icon">
		<meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">
		<script type="text/javascript" src="jquery-3.7.1.min.js"></script>
	</head>
 
	<body>
		<H2>Персональная карточка Пост № 1</H2>
		<div id="content"></div>
 
		<script>
			function show()
			{
				$.ajax(
				{
					url: "pcard01.php",
					cache: false,
					success: function(html)
					{
						$("#content").html(html);
					}
				});
			}
 
			$(document).ready(function()
			{
				show();
				setInterval('show()',1000);
			});
		</script>
	</body>
</html>

Ну и собственно сам результат:

Вывод события в браузер

Все вопросы, как и всегда, вы можете задать в группе в телеге.

Оцените пожалуйста статью:

ПечальноТак себеНе плохоХорошоОтличная статья! 1 оценок.
Загрузка...

Добавить комментарий