Здравствуйте. Имеется таблица вида:
В соответствии с полями 'uf_sap_code' и 'uf_sap_code_parent' необходимо найти родительские id и заполнить ими поле 'iblock_section_id'. Пытаюсь написать рекурсию, но не получается:
function getCategory() {
global $ibs;
$query = $ibs->GetList(
array('sort' => 'asc'),
array('IBLOCK_ID' => 5),
false,
array('ID', 'NAME', 'IBLOCK_SECTION_ID', 'UF_SAP_CODE', 'UF_SAP_CODE_PARENT')
);
$result = array();
while ($row = $query->Fetch()) {
$result[$row["UF_SAP_CODE_PARENT"]][] = $row;
}
return $result;
}
$category_arr = getCategory();
function getParentId($parent_id) {
global $category_arr;
if (isset($category_arr[$parent_id])) {
foreach ($category_arr[$parent_id] as $value) {
$id = $value["ID"];
getParentId($value["UF_SAP_CODE"]);
}
return $id;
}
}
К сожалению с рекурсией не приходилось раньше сталкиваться. Насколько я понял, нужно условие углубления, но не могу сообразить. Подскажите, пожалуйста.
Если я все верно понял то здесь и правда можно обойтись без рекурсии, несмотря на то что связи в таблице могут быть.. вложенными многократно. Основная суть ведь в том чтобы в поле iblock_section_id проставить ID родителя? Думаю тут подошел бы один вот такой SQL запрос
UPDATE your_table t1
JOIN your_table t2 ON t1.uf_sap_code_parent = t2.uf_sap_code
SET t1.iblock_section_id = t2.id
Вместо "your_table" имя вашей таблицы. Во время UPDATE'а мы попутно находим родителя (по полям uf_sap_code_parent и uf_sap_code) и извлекаем ID из него, который потом будет записан в iblock_section_id обновляемой таблицы.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При запуске скрипта crontab ругается на функцию, которая приведена нижеВыдает ошибку -
Здравствуйте, мог бы кто-нибудь подсказать популярные библиотеки С++ для работы с XML(для записи в него и считывание данных из него) или хороший...