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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Знать ДРЕВО рода своего это важно

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Вывод данных из базы и их дальнейшая обработка
kikos
Отправлено: 08 Ноября, 2013 - 16:36:24
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




Всем доброе время суток.
Решили с сынишкой сделать сайт-древо нашего рода.
Среди прочих штучек которые мы туда вводим,пришло решение сделать списки всех сыновей, внуков , правнуко и т.д.

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

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

?>

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

Заранее всем спасибо.
 
 Top
esterio
Отправлено: 08 Ноября, 2013 - 16:40:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




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
 
 Top
kikos
Отправлено: 08 Ноября, 2013 - 16:47:02
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




esterio пишет:
дерево на Mysql с помощю полей ID, PARENT_ID, LEVEL


Это что-то новенькое для меня )))
Спасибо.
 
 Top
EuGen Администратор
Отправлено: 08 Ноября, 2013 - 17:28:11
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Спойлер (Отобразить)


По теме: nested sets ; mysql version


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kikos
Отправлено: 08 Ноября, 2013 - 20:13:12
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




Насколько я понял вся я шутка в двух id - само id и родительское parent_id.
В моём случае и "name" и "fathername" являются уникальными.
Тоесть если есть Александр,то второго Александра не будет.Будет "Александр2" , "Александр3" , "Александр4" и т.д.
А именно все юзеры имеют уникальный "name" и уникальный "fathername", что в принципе тоже что и id parent_id
я просмотрел статьи которые мне порекамендовали,но увы (может я не очень сфурычал) там очень уж всё глобально. C одним запросом в db Выводятся целые деревья. А требуется всего лишь список одной ветки.

Так, как мы написали оно работает,но только с одним родительским атрибутом
Думаю,что надо просто что-то добавить,чтобы на втором этапе обработать данные полученные из запроса.
 
 Top
kikos
Отправлено: 10 Ноября, 2013 - 18:44:50
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)




Ребята,может кто всё таки подскажет
Это же должно быть не сложно
Вывести список Б- юзеров чье отцовское имя = имя всех юзеров из списка А,
где в списке А юзеры чьё отцовское имя = имя деда.

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

Что вписать, чтобы и остальных просчитал ???
 
 Top
DelphinPRO
Отправлено: 10 Ноября, 2013 - 19:34:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Лично я для генеалогического древа выбрал бы модель хранения данных "вложенные множества" (nested sets). Легко мог бы получить и потомков, и предков, и всю ветвь конкретного человека.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB