Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Знать ДРЕВО рода своего это важно
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Знать ДРЕВО рода своего это важно

Страниц (1): [1]
 

1. kikos - 08 Ноября, 2013 - 16:36:24 - перейти к сообщению
Всем доброе время суток.
Решили с сынишкой сделать сайт-древо нашего рода.
Среди прочих штучек которые мы туда вводим,пришло решение сделать списки всех сыновей, внуков , правнуко и т.д.

Создали фойл "сыновья" и занесли туда следующее:

<?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));

?>

И вроде всё опять чудно, список внуков есть, НО !!!
Нам выдает список детей только одного человека (первого из списка "сыновья") ,а остальных сыновей деда он почемуто игнорирует.
Может подскажите, как сделать,чтобы прорабатывались данные по всем сыновьям ???

Заранее всем спасибо.
2. esterio - 08 Ноября, 2013 - 16:40:46 - перейти к сообщению
1. Оформляйте пожалуйста код с помощю BB-кодов
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));

Ознакомтесь с данной статей от жителя даного форума, очень будет полезно
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 - перейти к сообщению
Спойлер (Отобразить)


По теме: nested sets ; mysql version
5. kikos - 08 Ноября, 2013 - 20:13:12 - перейти к сообщению
Насколько я понял вся я шутка в двух id - само id и родительское parent_id.
В моём случае и "name" и "fathername" являются уникальными.
Тоесть если есть Александр,то второго Александра не будет.Будет "Александр2" , "Александр3" , "Александр4" и т.д.
А именно все юзеры имеют уникальный "name" и уникальный "fathername", что в принципе тоже что и id parent_id
я просмотрел статьи которые мне порекамендовали,но увы (может я не очень сфурычал) там очень уж всё глобально. C одним запросом в db Выводятся целые деревья. А требуется всего лишь список одной ветки.

Так, как мы написали оно работает,но только с одним родительским атрибутом
Думаю,что надо просто что-то добавить,чтобы на втором этапе обработать данные полученные из запроса.
6. kikos - 10 Ноября, 2013 - 18:44:50 - перейти к сообщению
Ребята,может кто всё таки подскажет
Это же должно быть не сложно
Вывести список Б- юзеров чье отцовское имя = имя всех юзеров из списка А,
где в списке А юзеры чьё отцовское имя = имя деда.

У меня выдаёт список Б,но только одного юзера из списка А,а их там 9.

Что вписать, чтобы и остальных просчитал ???
7. DelphinPRO - 10 Ноября, 2013 - 19:34:22 - перейти к сообщению
Лично я для генеалогического древа выбрал бы модель хранения данных "вложенные множества" (nested sets). Легко мог бы получить и потомков, и предков, и всю ветвь конкретного человека.

 

Powered by ExBB FM 1.0 RC1