Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2022, 10:58   #1
Rom@n1982
Новичок
Джуниор
 
Регистрация: 01.11.2022
Сообщений: 0
По умолчанию (PHP)Запись в базу MySQL данных из многоуровневого массива $_POST каждый уровень в свою таблицу

Доброго времени суток!

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

В файл .php где будет запрос к базе на MySQL приходят данные из формы посредствам POST. Проблема в том, что данные приходят в виде многомерного массива и я это ни как поменять не могу (есть скрипт который делает динамическую таблицу и туда автоматом прописываются ключи, которые в последствии становиться ключами в многомерном массиве на 2-м его уровне.)

данные в POST которые приходят выглядят так:
Код:
Array
(
    [adres] => г. Орел
    [shema] => ДДА
    [0] => Array
        (
            [nomer_r_doc] => 4.1
            [vib_r_doc] => risk_doc
            [text_r_doc] => 11
            [nomer_r_dog] => 5.1
            [vib_r_dog] => risk_dog
            [text_r_dog] => 44
        )

    [1] => Array
        (
            [nomer_r_doc] => 4.2
            [vib_r_doc] => min_doc
            [text_r_doc] => 22
        )

    [2] => Array
        (
            [nomer_r_doc] => 4.3
            [vib_r_doc] => st_r_doc
            [text_r_doc] => 33
        )

    [ka] => 5
    [objekt] => 6
    [zemly] => 7
    [dop_info] => 8
    [fas] => 9
    [no_dok] => 10
    [rezoluciy] => sogl_zamech
    [send] => Сформировать ЮЗ
Причем, важно, что второй уровень массива не заканчивается ключами 0 и 1, там может быть сколько угодно ключей со значениями, но еще одной вложенности скажем в массив с индексом 2 уже не будет!

В базе есть 2 таблицы следующего вида:
https://programmersforum.ru/attachme...1&d=1667289139
https://programmersforum.ru/attachme...1&d=1667289150

просто вывести все содержание пришедшего массива $_POST я могу (подсказали)
Код:
<?php
if (!empty($_POST)){
    foreach ($_POST as $key => $value) {
        if(is_array($value))
        {
            foreach ($value as $key_2 => $value_2) {
                //вложенный массив
                echo $key_2. '=>'.$value_2."<br />";
            }
        }
        else echo $key. '=>'.$value."<br />";
    }
}
?>
Но моя задача записать из этого пришедшего массива данные в разные таблицы, должно быть так:

1)данные из массива с ключами adres, shema уже могут быть в таблице 'baza' в столбцах соответственно adres, shema, так как до формирования формы которая отправляет этот двумерный массив, есть форма которая уже заносит в таблицу следующие поля adres, shema, sessiya, region, status, но поскольку инпуты в первой форме с ключами adres, shema не обязательны на данном этапе, то именно эти поля могут быть определены в таблице как NULL, получается нужно проверить, если не NULL то заносим adres, shema при этом идентификатором строки в таблице куда нужно занести будет поле sessiya, на страницу где должен отработать скрипт занесения базу значения поля sessiya передается $_GET, соответственно этот идентификатор есть:
Код:
$sessiya = $_GET['sessiya'];
2)вторая цель занести именно в таблицу `dop_baza` в одноименные поля следующие значения из второго уровня массива: nomer_r_doc, vib_r_doc, text_r_doc, nomer_r_dog, vib_r_dog, text_r_dog. При всем при этом особенность в том, что в полученном массиве $_POST может быть несколько вложенных массивов 2 уровня и соответственно значений этих ключей может быть несколько. Таким образом получается, что через цикл нужно занести все значения, при этом поле id_b у все записей получается как как идентификатор на таблицу 'baza' и они при записи одинаковые, сам идентификатор так же передается уже на страницу со скриптом и доступен в переменной:
Код:
$id_baza = $_GET['id_baza'];
Вот такую запись в базу в разные таблицы из многомерного массива мне нужно реализовать.
Я понимаю, что тут изначально, что-то не так, а конкретно, если бы не создавался этот многомерный массив, то скорее всего и проблем бы таких не было. Я не знаю можно ли вообще такое реализовать, у меня не получается.

Буду очень признателен за любую помощь.
Изображения
Тип файла: jpg baza.jpg (106.8 Кб, 2 просмотров)
Тип файла: jpg dop_baza.jpg (77.5 Кб, 1 просмотров)
Rom@n1982 вне форума Ответить с цитированием
Старый 02.11.2022, 16:27   #2
Rom@n1982
Новичок
Джуниор
 
Регистрация: 01.11.2022
Сообщений: 0
По умолчанию

Добрый день!

Неужели никто не может взяться за мою задачку?
Rom@n1982 вне форума Ответить с цитированием
Старый 02.11.2022, 16:56   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

я же вам на другом форуме ответил как сделать.... или прямо надо сделать за вас?
ADSoft вне форума Ответить с цитированием
Старый 02.11.2022, 17:21   #4
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 493
По умолчанию

Цитата:
Сообщение от Rom@n1982 Посмотреть сообщение
Неужели никто не может взяться за мою задачку?
нет никакого желания браться за эту задачу, по одним именам ключей массива и названиям полей в БД, видно что код писал полный профан, поэтому "не в коня корм"

Цитата:
Сообщение от ADSoft Посмотреть сообщение
я же вам на другом форуме ответил
php.ru ?
Valick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не вносится запись в базу mysql davidoff_72 PHP 2 25.01.2016 14:48
Одновременная запись в базу данных MySQL Aleksandr БД в Delphi 12 13.11.2013 17:32
Как загрузить в базу данных MySQL таблицу ? pufystyj PHP 4 19.02.2011 20:18
Запись данных в таблицу MySQL, расположенную на удалённом сервере) tigr1991 БД в Delphi 0 07.01.2010 00:34
Не могу отобразить на одном листе несколько листов каждый из которых имеет свою сортировку данных FERRUM Microsoft Office Excel 7 03.10.2009 10:41