Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Формирование массива из БД (MS SQL)
Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
Здравствуйте.
Есть следующая задача. На входе запрос к БД (MS SQL), выбирающий нужные данные. Необходимо сформировать массив (или массив массивов, здесь я плаваю) и передать его в другую функцию в качестве переменной для построения иерархического списка. Сама функция построения дерева есть, написана не мной, поэтому вопрос не о ней.
Количество элементов (родителей и деток) в готовом списке не больше тысячи, если это важно.
По причине того, что сам список строится другой функцией, верстку я не привожу. Но если она все-таки нужна, скажите.
Да, вы будете правы, если скажете, что в интернете полно примеров построения таких массивов с помощью рекурсивной функции, но я и браться не знаю с какой стороны.
Возможно, я указал не всю нужную для ответа информацию, если что дайте знать.
Большое спасибо тем, кто отзовется.
ХозяЕн
Отправлено: 10 Июля, 2015 - 16:12:40
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
Так как на картинке сделано пойдет?
Upd:
Может я не совсем понял что требуется от тебя) Прикреплено изображение (Нажмите для увеличения)
Нужен массив из имен GP_NAME, TASK_NAME, MAIN_ACTION_NAME (ключи - GP_ID, TASK_ID, MAIN_ACTION_ID; TASK_PP_PARENT указывает на родителя GP_ID для TASK_ID; ID_TASK_PARENT указывает на родителя TASK_ID для MAIN_ACTION_ID), в том виде, как приведено в первом посте.
Запрос к БД возвращает таблицу с ID, именами и ID родителя. Прикрепил файл.
Честно говоря, вообще не понял, что Вы написали. Это работать никак не будет.
Может-то и можно без рекурсии, я не программист, чтобы судить. Прикреплено изображение (Нажмите для увеличения)
and_07
Отправлено: 13 Июля, 2015 - 10:02:54
Гость
Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012
Помог: 3 раз(а)
А вы пробовали смотреть
что получается на выходе из $glhl_array
contrafact
Отправлено: 13 Июля, 2015 - 10:25:44
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Июль 2015
$strSQL="select GP_ID, GP_CODE, GP_ID_PARENT, GP_ID_TYPE, GP_NAME, TASK_ID, TASK_PP_PARENT, TASK_CODE, TASK_NAME,MAIN_ACTION_ID,MAIN_ACTION_CODE,MAIN_ACTION_NAME from [dbo].[_v2_DWH_SP_GP_PP_INFO](".$idGP.",1,'mainActions') order by GP_ID";
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.