Всем доброе время суток.
Решили с сынишкой сделать сайт-древо нашего рода.
Среди прочих штучек которые мы туда вводим,пришло решение сделать списки всех сыновей, внуков , правнуко и т.д.
Создали фойл "сыновья" и занесли туда следующее:
<?php
include ("bd.php");
$strSQL = ("SELECT * FROM users WHERE fathername ='$grandfather[name]' ");
$result = mysql_query ($strSQL);
$myrow = mysql_fetch_array ($result);
do{
printf ("<img src='$myrow[avatar]' width=50 height=45 >");
printf ($myrow['name']);
printf ($myrow['city']);
printf ($myrow['country']);
}
while ($myrow = mysql_fetch_array($result));
?>
Суппер ! ! !
Всё сработало.Мы имели полный список всех сыновей нашего прадеда
(а их у него было аж 9 )
Далее создали файл "внуки" (сыновья сыновей) и внесли тоже ,но с небольшими добавками:
<?php
include ("bd.php");
$strSQL = ("SELECT * FROM users WHERE fathername = '$grandfather[name]' ");
$result = mysql_query($strSQL);
$myrow = mysql_fetch_array($result);
$strSQL = ("SELECT * FROM users WHERE fathername = '$myrow[name]' ");
$result = mysql_query ($strSQL);
$myrow = mysql_fetch_array ($result);
do{
printf ("<img src='$myrow[avatar]' width=50 height=45 >");
printf ($myrow['name']);
printf ($myrow['city']);
printf ($myrow['country']);
}
while ($myrow = mysql_fetch_array($result));
?>
И вроде всё опять чудно, список внуков есть, НО !!!
Нам выдает список детей только одного человека (первого из списка "сыновья") ,а остальных сыновей деда он почемуто игнорирует.
Может подскажите, как сделать,чтобы прорабатывались данные по всем сыновьям ???
Заранее всем спасибо.
1. kikos - 08 Ноября, 2013 - 16:36:24 - перейти к сообщению
2. esterio - 08 Ноября, 2013 - 16:40:46 - перейти к сообщению
1. Оформляйте пожалуйста код с помощю BB-кодов
2.
Ознакомтесь с данной статей от жителя даного форума, очень будет полезно
http://forum.php.su/topic.php?fo...33&topic=793
3. здесь нужно построить дерево на Mysql с помощю полей ID, PARENT_ID, LEVEL
2.
kikos пишет:
do{
printf ("<img src='$myrow[avatar]' width=50 height=45 >");
printf ($myrow['name']);
printf ($myrow['city']);
printf ($myrow['country']);
}
while ($myrow = mysql_fetch_array($result));
printf ("<img src='$myrow[avatar]' width=50 height=45 >");
printf ($myrow['name']);
printf ($myrow['city']);
printf ($myrow['country']);
}
while ($myrow = mysql_fetch_array($result));
Ознакомтесь с данной статей от жителя даного форума, очень будет полезно
http://forum.php.su/topic.php?fo...33&topic=793
3. здесь нужно построить дерево на Mysql с помощю полей ID, PARENT_ID, LEVEL
3. kikos - 08 Ноября, 2013 - 16:47:02 - перейти к сообщению
esterio пишет:
дерево на Mysql с помощю полей ID, PARENT_ID, LEVEL
Это что-то новенькое для меня )))
Спасибо.
4. EuGen - 08 Ноября, 2013 - 17:28:11 - перейти к сообщению
5. kikos - 08 Ноября, 2013 - 20:13:12 - перейти к сообщению
Насколько я понял вся я шутка в двух id - само id и родительское parent_id.
В моём случае и "name" и "fathername" являются уникальными.
Тоесть если есть Александр,то второго Александра не будет.Будет "Александр2" , "Александр3" , "Александр4" и т.д.
А именно все юзеры имеют уникальный "name" и уникальный "fathername", что в принципе тоже что и id parent_id
я просмотрел статьи которые мне порекамендовали,но увы (может я не очень сфурычал) там очень уж всё глобально. C одним запросом в db Выводятся целые деревья. А требуется всего лишь список одной ветки.
Так, как мы написали оно работает,но только с одним родительским атрибутом
Думаю,что надо просто что-то добавить,чтобы на втором этапе обработать данные полученные из запроса.
В моём случае и "name" и "fathername" являются уникальными.
Тоесть если есть Александр,то второго Александра не будет.Будет "Александр2" , "Александр3" , "Александр4" и т.д.
А именно все юзеры имеют уникальный "name" и уникальный "fathername", что в принципе тоже что и id parent_id
я просмотрел статьи которые мне порекамендовали,но увы (может я не очень сфурычал) там очень уж всё глобально. C одним запросом в db Выводятся целые деревья. А требуется всего лишь список одной ветки.
Так, как мы написали оно работает,но только с одним родительским атрибутом
Думаю,что надо просто что-то добавить,чтобы на втором этапе обработать данные полученные из запроса.
6. kikos - 10 Ноября, 2013 - 18:44:50 - перейти к сообщению
Ребята,может кто всё таки подскажет
Это же должно быть не сложно
Вывести список Б- юзеров чье отцовское имя = имя всех юзеров из списка А,
где в списке А юзеры чьё отцовское имя = имя деда.
У меня выдаёт список Б,но только одного юзера из списка А,а их там 9.
Что вписать, чтобы и остальных просчитал ???
Это же должно быть не сложно
Вывести список Б- юзеров чье отцовское имя = имя всех юзеров из списка А,
где в списке А юзеры чьё отцовское имя = имя деда.
У меня выдаёт список Б,но только одного юзера из списка А,а их там 9.
Что вписать, чтобы и остальных просчитал ???
7. DelphinPRO - 10 Ноября, 2013 - 19:34:22 - перейти к сообщению
Лично я для генеалогического древа выбрал бы модель хранения данных "вложенные множества" (nested sets). Легко мог бы получить и потомков, и предков, и всю ветвь конкретного человека.