Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос для таблицы master-detail, MYSQL 
:(
    Опции темы
nicka
  Дата 3.6.2004, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Работаю с использованием технологий PHP/MySql

У меня в базе(MYSQL) есть таблица - master-detail - для осуществления неограниченных иерархических
вложенностей записей, т.е есть ключевое поле(id) и поле владельца записи(masterid).

Мне надо осуществить следующее:
Если допустим, у меня есть уровень с 3 под уровнями, т.е 4-ступенчатая вложенность,
то при переходе по этим уровням я хочу иметь на странице линки всех родительских уровней моего
текущего местонахождения.

например, если у меня есть уровни:
Уровень1
Уровень1.1
Уровень1.1.1
Уровень1.1.1.1

ТО если я дойду до, скажем, уровня Уровень1.1.1, то вверху должен быть следующий путь:
Уровень1 >> Уровень1.1
оба залинкованные на соответствующий уровень.

У меня есть sql запрос, который выдает все полчиненные записи, но он почему то в MYSQL
не работает.

Код
SELECT LPAD (' ', 2 * (LEVEL-1)), *
FROM tbl
START WITH MASTERID IS NULL
CONNECT BY PRIOR ID = MASTERID



Вообщем не знаю поняли меня или нет, но жду советов...
PM MAIL   Вверх
MuToGeN
Дата 5.6.2004, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Я с чем-то типа того сталкивался... Решил так:
SQL
CREATE TABLE catalog (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), parent_id INT);
INSERT INTO catalog VALUES (1,'1',0),(2,'2',0),(3,'3',0),(4,'1.1',1),(5,'1.2',1),(6,'1.2.1',5);
Код

<?php
$path=Array();
function loadPath($id){
   if($id==0){
       return;
   }
   $r=mysql_query("SELECT * FROM catalog WHERE id = $id;");
   global $path;
   array_push($path,$row);
   loadPath($row[parent_id]);
}
loadPath(6);
print_r($path;
?>



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.