[php, sql] вывести дерево из бд
рекурсивно?
а разве по-другому можно его вабрать?
по-моему только рекурсивно
по-моему только рекурсивно
Ну так, а в чём тогда проблема, если ты понимаешь, что это надо сделать рекурсивно?
да чего-то рекурсия на писалась
все уже сделал, спасибо всем за помощь
все уже сделал, спасибо всем за помощь
а не рекурсивно, а одним запросом?
можно препроцессинг рекурсивно, а потом в один запрос
это то да, но вроде как проскакивала в разделе тема с тремя тестовыми заданиями, и как раз одним из них был вывод такой структуры в один запрос...
Любую рекурсию можно раскрыть.
а конкретно эту как раскрыть не подскажешь?
Создаешь в pgadmin - е такую функцию:
И пользуешь её для выборки в один запрос.
CREATE OR REPLACE FUNCTION treebranch(int4, int4)
RETURNS SETOF record AS
'DECLARE
start_node ALIAS FOR $1;
val ALIAS FOR $2;
ret RECORD;
BEGIN
FOR ret IN SELECT * FROM table1 WHERE f1=start_node
RETURN NEXT ret;
FOR ret IN SELECT * FROM treebranch(ret.f1,val) as t1 (f2,f3,f4,f5,...) LOOP
RETURN NEXT ret;
END LOOP;
END LOOP;
RETURN;
END;
'
LANGUAGE 'plpgsql' VOLATILE;
И пользуешь её для выборки в один запрос.
pgadminэто что?
я вообще то про стандартные переносимые методы спрашивал....
pgadmin - интерфейс к PostgreSQL (типа MySQLAdministrator etc.)
без pgadmin-а по-моему хранимую процедуру тоже можно написать
насчет переносимости тоже вроде все впорядке - главное, чтобы сервер баз данных поддерживал хранимые процедуры.
про то как любую рекурсию раскрыть - правда интересный вопрос.
без pgadmin-а по-моему хранимую процедуру тоже можно написать
насчет переносимости тоже вроде все впорядке - главное, чтобы сервер баз данных поддерживал хранимые процедуры.
про то как любую рекурсию раскрыть - правда интересный вопрос.
ааа.... а для мускуля есть решение?
тоже самое сделать не процедурой, а из скрипта и записать в табличку
не надо будет каждый раз процедуру дёргать
не надо будет каждый раз процедуру дёргать
MySQL начиная с 5-й версии поддерживает хранимые процедуры.
понятно, спасибо......
Оставить комментарий
dasha69
Есть таблица, в которой 2 колонки. В первой(id) хранится id католога, во второй(parent_id) - id родительского католога.Как из такой структуры вытащить дерево в виде массива с соответствующей вложенностью?
Заранее спасибо