Как с помощью PHP выбрать два последних input?

77
18 января 2022, 09:00
<form action="update.php"> 
   <input name=value[1]>
    <input name=value[2]>
    <input name=value[3]>
    <input name=value[4]>
    <input name=value[]>
    <input name=value[]>
</form>

Как с помощью PHP выбрать два последних input? при учете что цифры это id из таблицы БД

$index = array_keys($_POST['value']);
foreach ($index AS $item)
{
    $qty=$_POST['value'][$item];
    $update= $GLOBALS['pdo']->prepare("UPDATE test SET name = :value WHERE id = :id");
    $update->bindParam(':value', $qty);
    $update->bindParam(':id', $item);
    $update->execute();
}

код обрабатывающий input

Приведу еще дополнение. после запроса в БД в окне браузера отображается форма с заполненными полями (input), где [1] и т.д - это id записи из таблицы БД. (т.е цифра подставляется сама). Input же с пустым [] - это input, ктр пользователь добавляет по клику на кнопку"add". он может заполнять / не заполнять их-(как ему угодно). т.е повторюсь: после сохранения и последующего вывода цифра добавится.

Суть моей проблемы состоит в том чтобы при сохранении формы в таблицу БД попадали эти новые поля (поле) со значениями или без. Минуя копирование уже существующих полей формы.

Answer 1

Можно так получить эти значения:

<body>
    <form name="form" action="test.php" method="post" enctype="multipart/form-data">
        <input name=value[1]>
        <input name=value[2]>
        <input name=value[3]>
        <input name=value[4]>
        <input name=value[]>
        <input name=value[]>
        <button name="123" id="123" formmethod="post">Отправить</button>
    </form>
</body>
if (isset($_POST["123"])) { //Где "123" - имя кнопки отправки формы.
    if (isset($_POST)) {
        $num=count($_POST['value']);
        $last1 = array_pop($_POST['value']); // Последний элемент
        unset($_POST['value'][$num]);
        $last2 = array_pop($_POST['value']);// Предпоследний элемент
    } else {
        echo 'Данные не введены';
    }
}
Answer 2

Вы передаете это в качестве массива $_POST или $_GET. Теоретически, если сортировки не проводятся, то нужные значения будут либо в конце, либо в начале массива.

Можно выбрать так, если я правильно понял:

$_POST[count($_POST) - 1]; 
$_POST[count($_POST) - 2]
READ ALSO
Как сортировать файлы по дате в PHP?

Как сортировать файлы по дате в PHP?

Никак не могу найти способ, чтобы сделать вывод содержимого каталога с сортировкой по датеОт нового файла или папке к самой старой

71
MySQL выборка групп

MySQL выборка групп

Есть таблица:

82
Помогите с запросом SQL на выборку данных

Помогите с запросом SQL на выборку данных

Подскажите как написать запрос, для вывода трех наиболее оплачиваемых сотрудника предприятияНазвания полей и таблиц произвольное, мне нужно...

71
Как связать данные в Laravel?

Как связать данные в Laravel?

Как связать данные в Laravel? Есть 3 таблицы:

75