Вывести нужные данные из бд по 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

image2

image3

Есть выпадающий список (см. 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>

Ответы (0 шт):