[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Древовидная структура
Demon_gms
Здравствуйте!
Подскажите ПЖЛ где можно вычитать про то как выстроить запрос для выборки из двух баз по id=katID для построения древовидной структуры
Причем таким образом
Первая таблица необходимо выбрать
id : name : img : alt
Вторая таблица
id : katID : name : href :
Просто подскажите с помощью xего это реализeтся и мож есть какое-то общее требование.
Вид примерно вот такой.

<div id="manuf_goods">
<p>
НАЗВАНИЯ - NAME ТАБЛ 1</p>
<div
class="manuf_goods_img">
<img
src="IMG ТАБЛ 1" alt="ALT ТАБЛ 1" />
</div>
<div
class="manuf_goods_collection">
<ul>
<li><a
href="katID" title="href ТАБЛ 2">NAME ТАБЛ 2</a></li>
<li><a
href="katID" title="href ТАБЛ 2">NAME ТАБЛ 2</a></li>
.......

</ul>
</div>
</div>




Спустя 20 минут, 44 секунды (13.08.2011 - 17:25) Invis1ble написал(а):
select t1.*, t2.*
from `table1` t1
left join `table2` t2 on t2.`katID` = t1.`id`

Спустя 18 минут, 38 секунд (13.08.2011 - 17:44) Demon_gms написал(а):
Во кажись то самое.Получилось все поля вывел.

Спустя 39 минут, 43 секунды (13.08.2011 - 18:24) Demon_gms написал(а):
А можно поинтересоваться как происходит вывод
категория 1
----Подкатегория 1.1
----Подкатегория 1.2
----Подкатегория 1.3
.......
категория2
----Подкатегория 2.1
----Подкатегория 2.2
----Подкатегория 2.3
.......
........
Kатегория N...

Я много что прочитал по этому поводу,но могу ошибаться,поэтому и спрашиваю в поисках верного решения. Вот предлагают с понимощи рекурсии.Мож ссылкой поделитесь где можно прочитать..А пока у меня получается что название категории выплывает всегда к подкатегории а мне нужно только 1 раз.


Спустя 38 минут, 33 секунды (13.08.2011 - 19:02) Invis1ble написал(а):
Рекурсия нужна, если неизвестен уровень вложенности, а у тебя всего 2 уровня.
$query =
"select t1.`id` c_id, t1.`name` c_name, t1. `img`, t1.`alt`, t2.`id` sc_id, t2.`name` sc_name, t2.`href`
from `table1` t1
left join `table2` t2 on t2.`katID` = t1.`id`"

$result = mysql_query($query) or die(mysql_error());
$data = array();
while ($row = mysql_fetch_assoc($result)) {
if (!isset($data[$row['c_id']])) {
$data[$row['c_id']] = array(
'cat' => array($row['c_name'], $row['img'], $row['alt'])
);

}
$data[$row['c_id']]['subcats'][$row['sc_id']] = array($row['sc_name'], $row['href']);
}

echo '<pre>'; print_r($data); echo '</pre>';

Спустя 8 минут, 58 секунд (13.08.2011 - 19:11) Demon_gms написал(а):
Хорошо что сказали про рекурсию.Буду пробовать.

Спустя 11 дней, 14 часов, 57 минут, 29 секунд (25.08.2011 - 10:09) Demon_gms написал(а):
Долго мучился..Зато все кажись вышло.Извините пжл что не сразу отписался. На радостях наверно.Спасибо Invis1ble огромнющее!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.