|
|
|
|
|
для: sim5
(18.01.2007 в 15:57)
| | С Вашей задачей будет куда легче справиться, если Вы сформулируете ее в традиционных терминах. В частности, не будете называть таблицы базами, а имя поля id оставите для обозначения первичного ключа (или, на весьма худой конец, явно оговорите, что за поле в этом случае является первичным ключом). Сейчас Ваш текст читать очень трудно. | |
|
|
|
|
|
|
| Как одним запросом к базе, у которой поле ID может иметь одинаковые значения, но записи у этих ID разные, получить все доступные (enabled=1) записи без повтора ID в выходном массиве, например, база sourse:
ID descript enabled
----------------------------------
12 string1 1
12 string2 1
12 string3 1
24 string1 0
11 string1 1
11 string2 1
Из базы catalog, для этих ID надо получить имя и ID каталога этой ID, и если этот каталог не пренадлежит корневому каталогу (parent=0), то имя родителя, если родитель всвою очередь не пренадлежит корневому каталогу, то имя его родителя - пока не достигнем parent=0. Все это по LIMIT $offset, $max.
база catalog, например:
parent name ID
---------------------------
0 name1 11
32 name2 12
42 name3 32
0 name4 42
и чтобы получить массив типа
ID=>12,descript=>array(string1,string2,string3),parent=>array(0=>42,1=>name4,2=>32,3=>name3,4=>12,name2),
ID=>11,descript=>array(string1,string2),parent=>array(11=>name1)
или это лучше и эффективней будет на раздельных запросах? | |
|
|
|
|