Забрать данные из массива.

Все вопросы/проблемы по установке и использовании.
Аватара пользователя
ink64rus
Сообщения: 47
Зарегистрирован: 09 мар 2022, 10:34
Имя: Михаил
Откуда: Саратов
Контактная информация:

Забрать данные из массива.

Сообщение ink64rus »

Здравствуйте, прошу помочь, никак не соображу.
В некоей сущности "А" указывается стоимость работ и исполнители (в поле "сущность, выпадающий список ajax"), т.е. в одном поле может быть выбрано несколько исполнителей.
В этой же сущности "А" в поле "Ajax запрос" проводятся вычисления и получаем массив в виде ["id исполнителя 1"] => "cумма зарплаты" ["id исполнителя 2"] => "cумма зарплаты" (Например [2] => 1000 [3] => 800)

Не могу понять как добраться до этих данных из другой сущности. Если сохраняю этот массив в переменной, то он вместо массива туда сохраняет слово "Array".
Последние строки аякс запроса в Сущности "А" field_447:

Код: Выделить всё

print_r($zp_massiv);
$form_field_value = $zp_massiv;
Результат вывода:

Код: Выделить всё

Array ( [2] => 150 [3] => 150 )
Из другой сущности "B", пытался получить значение поля в массиве, обращаясь к его имени:

Код: Выделить всё

$zapros = db_fetch_array (db_query ("SELECT field_447 FROM app_entity_30"));
print_r($zapros[field_447][2]);
Результат вывода :) буква "r" из слова Array. Т.е. вместо значения поля из массива, получаю букву. Сильно не бейте пхп и скл изучаю недавно. В чем моя ошибка?
Спасибо.
Аватара пользователя
ink64rus
Сообщения: 47
Зарегистрирован: 09 мар 2022, 10:34
Имя: Михаил
Откуда: Саратов
Контактная информация:

Re: Забрать данные из массива.

Сообщение ink64rus »

Ну или проще. Если поле хранит не одно значение, а строку массива, как правильно сделать sql запрос?
remchik
Сообщения: 289
Зарегистрирован: 19 сен 2019, 11:32
Имя: Remchik
Откуда: Москва

Re: Забрать данные из массива.

Сообщение remchik »

Массив в БД - странновато.
Я бы сделал сущность - работа, и подсущность исполнители.
Тогда все встает на свои места.


******
https://www.php.net/manual/ru/control-s ... oreach.php
***
Тружусь как пчелка
***
SQL,BpmOnline,Creatio,BpmSoft,.NET,SAP WMS,MS SQL Server,Windows Server,IIS
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Забрать данные из массива.

Сообщение Antonyous99 »

$zapros = db_fetch_array (db_query ("SELECT field_447 FROM app_entity_30"));
print_r($zapros[field_447][2]);
$zapros[field_447][2] - похоже что там вообще пусто. Попробуйте вывести весь массив: print_r($zapros);
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Аватара пользователя
ink64rus
Сообщения: 47
Зарегистрирован: 09 мар 2022, 10:34
Имя: Михаил
Откуда: Саратов
Контактная информация:

Re: Забрать данные из массива.

Сообщение ink64rus »

Код: Выделить всё

Array
(
    [field_447] => Array
)
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Забрать данные из массива.

Сообщение nruslan2 »

Это массив, но только там ключ массива это название столбца таблицы!
В том виде в котором вы написали у вас только данные первой строки выборки Запроса! если нужны все строки то их перебирать циклом надо.

ЗЫ для вывода(проверки) лучше использовать команду не print_r, а print_rr
Аватара пользователя
ink64rus
Сообщения: 47
Зарегистрирован: 09 мар 2022, 10:34
Имя: Михаил
Откуда: Саратов
Контактная информация:

Re: Забрать данные из массива.

Сообщение ink64rus »

Ну хорошо, а почему я его просмотреть не могу?

Код: Выделить всё

$zapros = db_fetch_array (db_query ("SELECT field_447 FROM app_entity_30"));
$massiv = $zapros[field_447];
echo '<pre>';
print_rr($massiv);
echo '</pre>';
Выводит
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Забрать данные из массива.

Сообщение Antonyous99 »

Код: Выделить всё

$zapros = db_fetch_array (db_query ("SELECT * FROM app_entity_30"));
print_r($zapros);
Ну, если и тут ничего не будет...
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Аватара пользователя
ink64rus
Сообщения: 47
Зарегистрирован: 09 мар 2022, 10:34
Имя: Михаил
Откуда: Саратов
Контактная информация:

Re: Забрать данные из массива.

Сообщение ink64rus »

Так я проверял. В том-то и дело, что есть:

Код: Выделить всё

Array
(
    [id] => 23
    [parent_id] => 0
    [parent_item_id] => 17
    [linked_id] => 0
    [date_added] => 1647037971
    [date_updated] => 1649245073
    [created_by] => 1
    [sort_order] => 0
    [field_260] => 1
    [field_274] => 
    [field_381] => 4
    [field_382] => 
    [field_392] => 1000
    [field_400] => 1000
    [field_418] => 100
    [field_419] => 1000
    [field_420] => 900
    [field_446] => 2,3
    [field_447] => Array
    [field_606] => 
)
массив из field_447 сущности 30 в нужную мне я "перетаскивал", с помощью костылей, через serialize/unserialize. Но если массив есть, то значит можно обратиться к нему и без этого и добраться до нужной строки со значением. А я вокруг да около хожу :). По совету выше, уже параллельно пару вариантов рассматриваю как изменить структуру рассчета зарплаты.
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Забрать данные из массива.

Сообщение support »

Код: Выделить всё

$zapros = db_fetch_array (db_query ("SELECT field_447 FROM app_entity_30"));
- этот вариант не рабоатет, так как вы выбираете не одну, а все записи и их нужно перебирать в цикле, пример:

Код: Выделить всё

$zapros_query =db_query ("SELECT field_447 FROM app_entity_30");
while($zapros = db_fetch_array($zapros_query ))
{
print_r($zapros);
}
Ответить