по моему чего-то не договариваете и код с явными ошибками...
Misha v.3 09.09.2003 13:27
@ add_link[]
зачем тут пробел? так не может работать...
по теме... есть ощущение, что вы не очень понимаете что делаете...
как вы определяете, произошло дублирование или нет?
где код метода show_form?
не в нем-ли вы показываете все содержимое со ссылками? если в нем, то неудивительно... добавление происходит после отображения...
в любом случае, после добавления следует как-то считать новое содержимое...
по коду... вы ничего не слышали про метод locate? там, где вы делаете ^external_links.menu{} locate подходит лучше:
$est(^if(^external_links.locate[url;$form:url]){1}{0})
это если переделывать в лоб, а если по хорошему, то доставать все записи из БД для того, чтобы проверить есть уже подобная ссылка или нет - плохо. Представьте, что там их пара миллионов (знаю, что абсурд, но вы не знаете как будет развиваться система дальше)?
по хорошему надо сделать что-нить типа этого:
$exist(^int:sql{SELECT COUNT(*) FROM xlinks WHERE url = '$form:url'})
и естественно для такого запроса стОит сделать индекс на столбце url...