Как видно из таблицы что 0 это концовка значит она главная ...
Пример: человек заходит и попадает в раздел дракула значит нужно вывести под разделы это ужасы далее кино .
Может кто поможет реализовать ?
Спустя 17 минут, 33 секунды (12.08.2010 - 11:30) Basili4 написал(а):
Rutmens
любой учебник по SQL и через 2 часа ты все поймешь
любой учебник по SQL и через 2 часа ты все поймешь
Спустя 11 минут, 43 секунды (12.08.2010 - 11:42) Rutmens написал(а):
Ответ супер !!! я написал как мне реализовать ? а не какие учебники нужны .. я сделал код но чёт швайна.
P.S. (от linker) Выбирайте выражения без неприличных слов.
P.S. (от linker) Выбирайте выражения без неприличных слов.
Спустя 55 секунд (12.08.2010 - 11:43) Basili4 написал(а):
Rutmens
ну так покажи код
ну так покажи код
Спустя 18 секунд (12.08.2010 - 11:43) DedMorozzz написал(а):
вот с этого и надо было начать. Что ты что-то сделал. А не "а ну ка быстренько напишите мне код". Показывай что написал, укажем на ошибки.
Спустя 3 минуты, 45 секунд (12.08.2010 - 11:47) Rutmens написал(а):
$vv = "Amer_pie2";
$query = mysql_query ("SELECT * FROM SX WHERE name = '$vv' ");
while ($myrow = mysql_fetch_array($query))
{
print $myrow['name'] ."<BR>";
$res = mysql_query ("SELECT * FROM SX WHERE id = '$myrow[glav]' ");
while ( $myrow = mysql_fetch_array($res))
{
print $myrow['name']."<BR>";
}
}
$vv = "Amer_pie2"; (амер.пирог) - это понятно там сделаю потом через гет ... это пока для проверки .
Должно по идее выйти по ципочке ...
фильм-комедия-амер.пирог
Спустя 27 минут, 14 секунд (12.08.2010 - 12:14) DedMorozzz написал(а):
Смотри. ПО данной структуре БД не понятно, к какому жанру будет относиться Дракула. Ибо и на комедии и на ужасах один и тот же айди.
Спустя 11 минут, 53 секунды (12.08.2010 - 12:26) linker написал(а):
DedMorozzz
Нет, там ссылка id_n аля ParentId. Амер.пирог ссылается на комедии, которые в свою очередь ссылаются на фильм. А Дракуда ссылается на ужасы, которые в свою очередь ссылаются тоже на фильмы.
Нет, там ссылка id_n аля ParentId. Амер.пирог ссылается на комедии, которые в свою очередь ссылаются на фильм. А Дракуда ссылается на ужасы, которые в свою очередь ссылаются тоже на фильмы.
Спустя 24 минуты, 34 секунды (12.08.2010 - 12:51) DedMorozzz написал(а):
А не совпадение ли это? Хотя чёрт его нает. Возможно так и задумано. Если парент - ща напишу как.
Спустя 2 минуты, 24 секунды (12.08.2010 - 12:53) Rutmens написал(а):
Цитата (DedMorozzz @ 12.08.2010 - 09:51) |
А не совпадение ли это? Хотя чёрт его нает. Возможно так и задумано. Если парент - ща напишу как. |
В смысле ? если вызвать дракулу то далее будет идти ужасы и далее уже фильм ..
Такая конструкция у дле движка сделана я оттуда позаимствовал .. но доковырять не могу .
Спустя 2 минуты, 17 секунд (12.08.2010 - 12:55) linker написал(а):
DedMorozzz
Ну да, дочерний id_n ссылается на родительский id, при id_n = 0 - это верхушка дерева.
Ну да, дочерний id_n ссылается на родительский id, при id_n = 0 - это верхушка дерева.
Спустя 50 секунд (12.08.2010 - 12:56) DedMorozzz написал(а):
попадает на дракулу. Выходит у нас есть выборка:
id= 5, id_n=3, name=Drakula.
Запсываем id_n и делаем запрос. SELECT * FROM `table` WHERE id=<id_n полученый из дракулы>
Далее ТОЧНО такой же принцип. Дашь дамп, даже возможно одним запросом напишу.
id= 5, id_n=3, name=Drakula.
Запсываем id_n и делаем запрос. SELECT * FROM `table` WHERE id=<id_n полученый из дракулы>
Далее ТОЧНО такой же принцип. Дашь дамп, даже возможно одним запросом напишу.
Спустя 2 минуты, 11 секунд (12.08.2010 - 12:58) DedMorozzz написал(а):
А если древо будет безконечное - тогда, действительно в цикле пропустить его.
Спустя 9 минут, 28 секунд (12.08.2010 - 13:08) Rutmens написал(а):
Цитата (DedMorozzz @ 12.08.2010 - 09:58) |
А если древо будет безконечное - тогда, действительно в цикле пропустить его. |
В смысле будет бесконечное ?
Спустя 5 минут, 13 секунд (12.08.2010 - 13:13) DedMorozzz написал(а):
Ну это как "конечное", только наоборот.
В данном случае - если будут разделы "фильмы"->"фильмы до 2000го года и после 1990"-> "Фильмы до 2008го и до 2005го"->"Ужасы"->"Дракула".
Эту вложенность можно увеличить до бесконечности.
В данном случае - если будут разделы "фильмы"->"фильмы до 2000го года и после 1990"-> "Фильмы до 2008го и до 2005го"->"Ужасы"->"Дракула".
Эту вложенность можно увеличить до бесконечности.
Спустя 1 час, 3 минуты, 58 секунд (12.08.2010 - 14:17) Guest написал(а):
Может хоть кнотить набросает небольшой код ? ....
Спустя 4 часа, 49 минут, 34 секунды (12.08.2010 - 19:07) Rutmens написал(а):
Вопрос ещё в силе .
Спустя 13 часов, 22 минуты, 46 секунд (13.08.2010 - 08:29) linker написал(а):
Есть вариант но с отдельной таблицей с путями для каждого элемента. Там два поля: parent - ссылка на родительский элемент (id_n, который), id - собственно идентификатор самого дочернего элемента. Например, для Дракулы должны быть следующие записи
parent | idТогда одним запросом вытягиваем всю последовательность
------------
3 | 5
1 | 5
SELECT * FROM films WHERE
id = 5 or id IN (SELECT parent FROM ways WHERE id = 5)
ORDER BY id ASC
Спустя 3 часа, 16 минут, 57 секунд (13.08.2010 - 11:46) Rutmens написал(а):
Цитата (linker @ 13.08.2010 - 05:29) |
Есть вариант но с отдельной таблицей с путями для каждого элемента. Там два поля: parent - ссылка на родительский элемент (id_n, который), id - собственно идентификатор самого дочернего элемента. Например, для Дракулы должны быть следующие записиparent | idТогда одним запросом вытягиваем всю последовательность SELECT * FROM films WHERE |
У меня на сайте будет не про фильмы , а совсем другое .. я для примера привел .. да и база что-то напонминает мою старую то состояла из точнее из 3 .. но нужно одну совместить чтобы осталось две .
Смыл тут такой .. у меня сайт по софту и прошивкам .. к примеру если вызвать SOFT через GET то по сути должно пойти всё по циклу ... но у каждой мобилы есть свой раздел софта .
Хотел совместить к примеру SIMENS с моделью (для примера) S500 и ссылка бы выгледила вот так .
www.site.ru/simens/s500/
А если вызвать уже по модели ссылка можно сделать вот такую
www.site.ru/1234/soft/
Где 1234 - это id модели .. и тогда думаю не должно выйти путаницы .
P.S Ну всё равно спасибо , как рещу свою проблему выложу код .
Спустя 26 минут, 49 секунд (13.08.2010 - 12:13) linker написал(а):
У меня тоже пример, который можно заточить под что-то похожее. Вобщем, хозяин - барин.
Спустя 4 дня, 11 часов, 10 минут, 31 секунда (17.08.2010 - 23:24) Rutmens написал(а):
Написал вот такую функцию но я понимаю что она реализована плохо ... может ктонить немного подскажет как лучше сделать по другому ?
Ща всё по точнее проверил работает как раз как нужно мне ... но нужно подкоректировать правильно ...
function resivers ($step){
$conn = db_connect();
$result = $conn->query("SELECT * FROM films WHERE name = '$step'");
$row = $result->fetch_array();
print $row['id']."НЕТ - ";
$result = $conn->query("SELECT * FROM films WHERE id_n = '$row[id]'");
while ($rows = $result->fetch_array())
{
print "<BR>".$rows['name'] ;
}
}
Ща всё по точнее проверил работает как раз как нужно мне ... но нужно подкоректировать правильно ...
function resivers ($step){
$conn = db_connect();
$result = $conn->query("SELECT * FROM films WHERE name = '$step'");
$row = $result->fetch_array();
print $row['id']." - ID вызваного ";
if ($row['id'] != false)
{
$result = $conn->query("SELECT * FROM films WHERE id_n = '$row[id]'");
while ($rows = $result->fetch_array())
{
print "<BR><a href=http://localhost/r/index.php?name=".$rows['name'].">".$rows['name']."</a>" ;
}
}
}
Спустя 21 час, 19 минут, 16 секунд (18.08.2010 - 20:43) Rutmens написал(а):
Ну что не кого нету ?
Спустя 11 часов, 33 минуты, 57 секунд (19.08.2010 - 08:17) linker написал(а):
Имхо, это
if ($row['id'] != false)фигня какая-то
Спустя 3 часа, 8 минут, 15 секунд (19.08.2010 - 11:25) Rutmens написал(а):
Сорри это я для теста туда кинул у меня просто в отдельном файле все это не хотел мудрить с подключением .