parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 21.04.2006 21:12

В примере с форумом есть возможность начать "сверху" - выбрать корневые сообщения и плясать от них.
у вас тоже есть корневой уровень: район
Я же этой возможности не имею по двум причинам:
1) Мне не нужны все станции метро в данном районе. Нужны только те, к которым относятся помещения с заданной площадью и ценой.
ну так включите эти условия в sql запрос, т.е. у вас достанутся только те станции метро рядом с которыми есть то что ищут. соответственно они и выведутся.
2) Мне не нужны все помещения в данном здании и т.д.
аналогично. sql-ем (с join) вы отбираете нужные данные. затем парсером структурируете их и выводите в виде дерева.
Я могу доставать всю нужную информацию одним SQL-запросом с многочисленными join'ами (что сейчас и происходит). Что только мне потом делать с полученной таблицей?
я вижу всего 3 join, это совсем не много, т.к. они достаточно простые и при наличии правильных индексов должны работать быстро. в принципе если в условиях отбора записей не может быть такого: "я хочу список ищеющегося в наличии что расположено рядом со станциями метро X, Y, Z и имеет цену от XX до YY" то можно один запрос с 3 join поменять на 3 запроса без join.
Что только мне потом делать с полученной таблицей?
Доставать из неё все уникальные станции метро, потом пробегать по полученной таблице и доставать здания для каждой станции, потом для каждого здания его помещения? А как в таком случае лучше доставать уникальные значения полей?
если делаете первый запрос только по таблице помещений, то в принципе можете второй запрос сделать с 2 join и достать все остальное (where ... Здания.ID IN (^результат1запроса.menu{$результат1запроса.ID_здания}[,]) ...)
Что подразумевается в документации под этими словами:
$.distinct[tables]
создать хеш из таблиц, содержащих строки с ключом.
там где вы читали про форум это объясняется примером кода. не дочитали? :)
Может быть это именно то что мне надо?
именно
Что быстрее - выбирать из готовой таблицы с результатами поиска средствами Parser'а или дать ещё один SQL-запрос?
не понял что вы подразумеваете под готовой таблицей.
обычно правильнее всего доставать из SQL как можно меньше данных. но на вопрос о том "что быстрее" может ответить только тестирование.

P.S. направление правильное