Страница 1 из 2
Забрать данные из массива.
Добавлено: 04 апр 2022, 20:17
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;
Результат вывода:
Из другой сущности "B", пытался получить значение поля в массиве, обращаясь к его имени:
Код: Выделить всё
$zapros = db_fetch_array (db_query ("SELECT field_447 FROM app_entity_30"));
print_r($zapros[field_447][2]);
Результат вывода

буква "r" из слова Array. Т.е. вместо значения поля из массива, получаю букву. Сильно не бейте пхп и скл изучаю недавно. В чем моя ошибка?
Спасибо.
Re: Забрать данные из массива.
Добавлено: 04 апр 2022, 21:10
ink64rus
Ну или проще. Если поле хранит не одно значение, а строку массива, как правильно сделать sql запрос?
Re: Забрать данные из массива.
Добавлено: 04 апр 2022, 22:41
remchik
Массив в БД - странновато.
Я бы сделал сущность - работа, и подсущность исполнители.
Тогда все встает на свои места.
******
https://www.php.net/manual/ru/control-s ... oreach.php
Re: Забрать данные из массива.
Добавлено: 06 апр 2022, 03:02
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);
Re: Забрать данные из массива.
Добавлено: 06 апр 2022, 14:40
ink64rus
Re: Забрать данные из массива.
Добавлено: 06 апр 2022, 15:40
nruslan2
Это массив, но только там ключ массива это название столбца таблицы!
В том виде в котором вы написали у вас только данные первой строки выборки Запроса! если нужны все строки то их перебирать циклом надо.
ЗЫ для вывода(проверки) лучше использовать команду не print_r, а print_rr
Re: Забрать данные из массива.
Добавлено: 06 апр 2022, 21:46
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>';
Выводит
Re: Забрать данные из массива.
Добавлено: 06 апр 2022, 22:02
Antonyous99
Код: Выделить всё
$zapros = db_fetch_array (db_query ("SELECT * FROM app_entity_30"));
print_r($zapros);
Ну, если и тут ничего не будет...
Re: Забрать данные из массива.
Добавлено: 06 апр 2022, 22:17
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. Но если массив есть, то значит можно обратиться к нему и без этого и добраться до нужной строки со значением. А я вокруг да около хожу

. По совету выше, уже параллельно пару вариантов рассматриваю как изменить структуру рассчета зарплаты.
Re: Забрать данные из массива.
Добавлено: 07 апр 2022, 07:08
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);
}