PHP Отображение значений из БД - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь создать отображение между двумя таблицами, которое затем должно предоставить массив (ожидаемые результаты можно увидеть ниже).

Если пользователь нажимает кнопку (action_type = label) в пользовательском интерфейсе, то в таблицу параметров БД отправляется запрос с параметром action_type. С запросом всегда высылается идентификатор отгрузки и идентификатор пользователя и action_type.

Оттуда должно быть создано отображение.

У меня есть три стола.

В таблице Parameter I есть необходимые параметры для метки action_type. Например, если мне нужно значение параметра "посылки", тогда код сможет найти значение из таблицы отправлений и принять значение shipment_identification.

Таблица: параметр

╔════╦═════════════╦════════════════╦═════════════════════════╗
║ id ║ action_type ║ parameter_name ║ parameter_value         ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 1  ║ Label       ║ parcels        ║ shipment_identification ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 2  ║ Label       ║ printType      ║ printType               ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 3  ║ Label       ║ printFormat    ║ printFormat             ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 4  ║ Label       ║ user           ║ username                ║
╠════╬═════════════╬════════════════╬═════════════════════════╣
║ 5  ║ Label       ║ pass           ║ password                ║
╚════╩═════════════╩════════════════╩═════════════════════════╝

Таблица: User_configurations

╔════╦═════════╦═══════════════════════╦═══════════════════╗
║ id ║ user_id ║ user_config_parameter ║ user_config_value ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 1  ║ 1       ║ username              ║ ABC               ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 2  ║ 1       ║ password              ║ DEF               ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 3  ║ 1       ║ printType             ║ A4                ║
╠════╬═════════╬═══════════════════════╬═══════════════════╣
║ 4  ║ 1       ║ printFormat           ║ ZPL               ║
╚════╩═════════╩═══════════════════════╩═══════════════════╝

Таблица: отгрузки

╔════╦═════════╦═════════════════════════╗
║ id ║ user_id ║ shipment_identification ║
╠════╬═════════╬═════════════════════════╣
║ 1  ║ 1       ║ 0123456789              ║
╚════╩═════════╩═════════════════════════╝

Из базы данных я запрашиваю текущую конфигурацию и доставку пользователей.

Ожидаемый результат будет этот массив. Для всех параметров, где action_type равен label, мне нужно значение из второй и третьей таблиц.


$request_params = [
            'form_params' => [
                'parcels' => '0123456789',
                'printType' => 'A4',
                'printFormat' => 'ZPL',
                'user' => 'ABC',
                'pass' => 'DEF'
            ]
        ];

Я пытался решить эту проблему с помощью нескольких циклов foreach, но не могу, и в итоге получаю следующее:


foreach ($parameters as $parameter) {
    $request_params['form_params'][$parameter->parameter_name] = $userConf->user_config_value;
}


Array ( [form_params] => Array ( [printFormat] => A4 [parcels] => A4 [printType] => A4 ) )

Я понимаю, что в настоящее время мой код использует последнее значение из DB для каждого отдельного значения параметра, но как я смогу назначить правильное значение из таблицы User_configurations и таблицы Shippingments, используя таблицу Parameter для сопоставления.

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...