написал по русски текст который по факту английский то норм да?)
штука в том что имя берем в одно место , а имя и фамилию в другое , они вообще не связаны между собойЭта загадочная фраза, я ее не осилил. Кто с кем не связан?
<select name="rabotniki[]" class="rabotniki" multiple="multiple">
<?php
foreach ($rabotniki as $rab) {
?>
<option class="noSelectMultiple<?= $rab[id] ?>"
value="<?= $rab[id] ?>"> <?= $rab[name] ?></option>
<?php } ?>
</select>
вы прерываете выполнение приложения, все состояния будут утрачены.Справедливости ради - проблема в общем то не в завершении по exit, а в перенаправлении на совершенно новый урл, который, конечно же, не сохраняет данные(в общем случае до exit выполнение не доходит).
2. Пока оставлю, может кеширование поможет.Плохой вариант, если запрос будет выполняться по 5 секунд(да даже по 1) это плохо, типичный запрос к таблице на 1 000 000 записей с индексами должен отрабатывать в пределах 0,5 секунды в пике, конечно учитывая нормальное железо и верно типизированные данные. Кэш не спасет если запрос будет ложить сервер.
где можно ознакомиться с кешированием, желательно под конкретную задачу, без полного изучения с нуля.Задачи кеширования и инвалидации кеша в ощем случае относятся к сложным, с нуля все же сложно порекомендовать что-либо, но в вашем случае думаю простого кеша в файл/мемкеш будет достаточно, просто писать файл/создавать ключ как таймстамп, перед запросом проверять есть ли кеш с именем меньше чем $(текущее время - 10 секунд), если нет - почистить папку/мемкеш от всего, сделать запрос и создать новый файл/мемкеш ключ с результатами запроса.
'~.*Content-Disposition: attachment; filename=(.+)Accept-Ranges.*~i'