помогите плз ссылкой

antonim

Новичок
помогите плз ссылкой

помогите плз ссылкой. Хочу сделать несколько функций в mysql. Но ничего толкового не нашел. В официальной документации ваще 2 слова про написание и один совершенно ничего не раскрывающий пример. Идеальный вариант: синтаксис с примерами. буду полезным ссылкам.
 

Fortop

Новичок
Re: помогите плз ссылкой

Автор оригинала: antonim
помогите плз ссылкой. Хочу сделать несколько функций в mysql. Но ничего толкового не нашел. В официальной документации ваще 2 слова про написание и один совершенно ничего не раскрывающий пример. Идеальный вариант: синтаксис с примерами. буду полезным ссылкам.
Синтаксис чего? Хранимых функций и процедур? Или компилируемых в сервер UDF?

delimiter //
create function cp (param INT)
returns INT
deterministic
begin
set param = param * 20;
return param;
end;
//
delimiter ;

select cp(10);
 

antonim

Новичок
Re: Re: помогите плз ссылкой

Автор оригинала: Fortop
Синтаксис чего? Хранимых функций и процедур? Или компилируемых в сервер UDF?

delimiter //
create function cp (param INT)
returns INT
deterministic
begin
set param = param * 20;
return param;
end;
//
delimiter ;

select cp(10);
спасибо конечно за рабочий пример, но он к сожалению не раскрывает и малой части синтаксиса, который мне необходим.
 

Fortop

Новичок
Там описано абсолютно все. Другого синтаксиса просто нет.

Что такое расширенный синтаксис? :)
 

antonim

Новичок
по данному описанию не могу сделать функцию, которая должна из таблицы, в которой зашито дерево:

1. посчитать level для каждого элемента
2. Вывести дерево в форме, удобной для дальнейшей обработки.
 

Fortop

Новичок
Если я правильно помню, то в PHP нет возможности получить выборку в несколько строк из хранимой функции или процедуры.

Т.е. придется клеить в строку
 

dimagolov

Новичок
antonim, у тебя проблема не с синтаксисом ф-ий, а проблема со знанием языка запросо MySQL. Вообще SQL изначально это недо-язык (не алгоритмический), и для его алгоритмизации используются различные костыли, например курсоры.

Кроме того, твоя проблема видимо в отсутствии знаний по теории деревьев и графов, для практического которых есть множество разных решений, различающихся задачами, которые можно решать с помощью таких решений и сложностью тех или иных операций над конкретным представлением дерева. Одно из решений тут: http://phpclub.ru/detail/article/db_tree

-~{}~ 11.02.10 11:42:

Fortop, да ну? можно временные таблицы использовать и не только. но автору нужно почитать теорию о деревьях в БД а не страдать со своим кривым велосипедом, который не едет.

-~{}~ 11.02.10 11:45:

кстати, кто-то показывал мне, как можно возвращать таблицу из процедуры или ф-ии, но я уже не помню где и как именно.
 

Fortop

Новичок
Автор оригинала: dimagolov
-~{}~ 11.02.10 11:42:
Fortop, да ну? можно временные таблицы использовать и не только.
Как использовать временные таблицы я в курсе.

Впрочем, я только что проверил - действительно можно вернуть результат из нескольких строк из процедуры.
 

Fortop

Новичок
Там просто мануал несколько запутан, с переменными процедуры IN/OUT/INOUT

На самом деле все банально.

[sql]delimiter //
create procedure cp()
begin
select * from customer;
end;
//
delimiter ;[/sql]

PHP:
$res = mysql_query('CALL cp()');
var_dump(mysql_fetch_assoc($res));
А для расширения php_mysql нельзя сделать MYSQL_MULTI_SELECT, а не MYSQL_MULTI_RESULTS, что в памяти у меня и отложилось.
 
Сверху