Вывести нужные данные из бд по ID
Делаю проект. Который представляет из себя следующее. Имеется главная страница с 2-мя выпадающими списками. В первом списке находятся названия 5 документов(протоколов). Пользователь выбирает необходимый документ, после чего он загружается. В поля данного документа заносятся данные и параметры. После чего эти данные сохраняются в базу данных. Эту часть проекта я сделал. Проблема со вторым выпадающим списком. В нем должны отображаться все сохраненные протоколы. Название этих протоколов формируется из названия фирмы заказчика, номера протокола и названия протокола. Когда пользователь выбирает нужный ему протокол, то загружается нужный шаблон протокола, а в поля протокола подставляются правильные данные из базы данных. Загрузку нужного шаблона я реализовал следующим образом
<?php
$string = "APL Production/20077-Ultrasonic testing";
list($location, $remainder) = explode("-", $string);
list($protocolName, $extension) = explode(".", $remainder);
If($protocolName === 'Ultrasonic testing'){
$myfile = fopen('C:\xampp\htdocs\welding_protocol\Ultrasonic_testing.php','r') or die ("Unable to open file!");
echo fread($myfile,filesize('C:\xampp\htdocs\welding_protocol\Ultrasonic_testing.php'));
} elseif ($protocolName === 'Protocol2') {
$myfile = fopen('C:\xampp\htdocs\welding_protocol\Penetrant_testing.php','r') or die ("Unable to open file!");
echo fread($myfile,filesize('C:\xampp\htdocs\welding_protocol\Penetrant_testing.php'));
} else {
echo 'Error';
}
?>
А как сделать чтобы в этот шаблон загружались правильные данные из базы данных? Есть идея что можно связать номер протокола и ID строки базы данных, но я не знаю как это реализовать в php.
Есть выпадающий список (см. image1), в нем так сказать, названия сохраненных протоколов(их количество равно заполненным и сохраненным протоколам). Если пользователь выбирает первый протокол как на картинке (image1) то загружается нужный шаблон(это уже реализовано), а в поля этого шаблона загружаются правильные данные из БД (см. image3) отмеченные цифрой 1. Если пользователь выбирает другой шаблон(см. image2), то загружается другой шаблон и в поля этого шаблона загружаются данные из БД (см. image2) отмеченные цифрой 2. И т.д.
Полный код разметки файла шаблона я не буду выкладывать, так как он очень большой.
Код шаблона
<?php
include_once 'connection.php';
$query = "SELECT * FROM protocoldata WHERE id=4";
$result = mysqli_query($conn,$query)or die (mysqli_error($conn));
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta charset="utf-8" />
<style>
table{
border-style:solid;
border-width:2px;
}
td {
border-style:solid;
border-width:1px;
text-align:center;
}
th {
border-style:solid;
border-width:1px;
}
</style
</head>
<body style="margin: 0;">
<table>
<tbody>
<tr>
<th>Töö nr./Work No.</th>
<th>Protokolli nr./Report No.</th>
<th>Protocol name</th>
<th>Purchaser</th>
</tr>
<tr>
<td><?php while($row = mysqli_fetch_array($result)){ echo $row['work_no'];?></td>
<td><?php echo $row['report_no'];?></td>
<td><?php echo $row['protocol_name'];?></td>
<td><?php echo $row['purchaser'];}?></td>
</tbody>
</table>
</body>
</html>
Код главной страницы (страницы со скриншота)
<?php
include('connection.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href = "assets/css/bootstrap.min.css">
<script src = "assets/js/bootstrap.min.js"></script>
<script language="javascript" type="text/javascript">
function seltag()
{
let p = document.all["uploadProtocol"].value;
document.location = "protocol1/Protocol_nr._"+p+".php";
}
function seltag2()
{
let b = document.all["downloadProtocol"].value;
document.location = b+"_testing.php";
}
</script>
<style>
.company{
display: inline-block;
margin: 20px;
}
.add_company{
margin: 20px;
display: block !important;
}
#downloadProtocol{
display: inline-block;
margin: 20px;
}
#uploadProtocol{
display: inline-block;
margin: 20px;
}
form{
float:left;
}
</style>
</head>
<body>
<form>
<select name="uploadProtocol" id="uploadProtocol" onchange="seltag()">
<option value="0">Choose</option>
<option value="1">Ultrasonic testing</option>
<option value="2">Penetrant testing</option>
<option value="3">Visual testing</option>
<option value="4">Radiographic testing</option>
<option value="5">Magnetic partial testing</option>
</select>
</form>
<form method="post" action="">
<select name="downloadProtocol" id="downloadProtocol" onchange="seltag2()">
<option>Choose</option>
<?php
$sqli = "SELECT * FROM protocoldata";
$result = mysqli_query($conn, $sqli);
while($row = mysqli_fetch_array($result))
{
$title_part1 = $row['purchaser'];
$title_part2 = $row['report_no'];
$title_part3 = $row['protocol_name'];
$full_title = $title_part1.'-'.$title_part2.'-'.$title_part3;
list($location, $remainder) = explode("-", $full_title);
list($splitedTitle, $extension) = explode(" ", $remainder);
echo '<option value='.$splitedTitle.'>' .$full_title. '</option>'
}
?>
</select>
</form>
<form class="form-group form-inline" id ="add_company" action="insert_company_to_db.php" method="post">
<div class="company"><input type="text" name="company" form="add_company"></div>
<div class="add_company"><input type="submit" value="Add company" name="upload" form="add_company"></div>
</form>
</body>
</html>


