[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос в таблицу на странице
Анатолий73
Здравствуйте!
Есть запрос:

$sql="with recursive cte (id, familia, imya, otchestvo, maiden_name, father) as (
select id,
familia,imya,otchestvo,maiden_name,
father
from personi
where father = 669
union all
select p.id,
p.familia,p.imya,p.otchestvo,p.maiden_name,
p.father
from personi p
inner join cte
on p.father = cte.id
)
select * from cte"
;
if($result = $conn->query($sql)){
foreach($result as $row){
$id = $row['id'];
$familia = $row['familia'];
$maiden_name = $row['maiden_name'];
$imya = $row['imya'];
$otchestvo = $row['otchestvo'];
}
}

Я могу выгрузить его в один столбец:

<tr><td><?php echo $familia.' '.$imya.' '.$otchestvo;?></td></tr>

А хотелось бы получить таблицу типа этого:

первый |второй|третий|четвертый|пятый
прадед | дед | отец | сын | внук
прадед | дед | отец | сын | внучка
прадед | дед | отец | дочь | внучка
прадед | дед | дядя | дочь
прадед | дед | тетя | сын
прадед | брат деда |

Возможно ли это как-то сделать? Что-то не получается, от слова "совсем".
Kusss
Правда запрос очень странный. А обычный обрабатывается так ...
$result = $conn->query($sql) or die ( 'Ошибка Mysql:'. $conn->error );
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()){
echo '
<tr>
<td>'
. $row['id'] .'</td>
<td>'
. $row['familia'] .'</td>
<td>'
. $row['maiden_name'] .'</td>
<td>'
. $row['imya'] .'</td>
<td>'
. $row['otchestvo'] .'</td>
</tr>
'
;
}
}
Анатолий73
Цитата (Kusss @ 9.02.2024 - 14:17)
Правда запрос очень странный. А обычный обрабатывается так ...
$result = $conn->query($sql) or die ( 'Ошибка Mysql:'. $conn->error );
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()){
echo '
<tr>
<td>'
. $row['id'] .'</td>
<td>'
. $row['familia'] .'</td>
<td>'
. $row['maiden_name'] .'</td>
<td>'
. $row['imya'] .'</td>
<td>'
. $row['otchestvo'] .'</td>
</tr>
'
;
}
}



Почему странный?
Мне не надо столбцы отдельно с фамилией, именем и отчеством.
Мне надо как в таблице в конце.
Первый столбец - прадед (до конца таблицы)
Второй столбец - дед, брат деда
Третий столбец - отец, дядя, тетя
и т.д..
Kusss
а как у вас организована система хранения родословной.
personi - тут данные человека, это понятно.
А как узнать что у человека есть родственники ?

"p.father = cte.id" - Это отец. А остальное как связывается ?
Какая структура у таблицы "cte" ?
Анатолий73
Цитата (Kusss @ 13.02.2024 - 15:12)
а как у вас организована система хранения родословной.
personi - тут данные человека, это понятно.
А как узнать что у человека есть родственники ?

"p.father = cte.id" - Это отец. А остальное как связывается ?
Какая структура у таблицы "cte" ?

CREATE TABLE `personi` (
`id` int(20) NOT NULL,
`familia` varchar(100) NOT NULL,
`maiden_name` varchar(100) DEFAULT NULL,
`imya` varchar(100) NOT NULL,
`otchestvo` varchar(100) DEFAULT NULL,
`father` int(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Структура CTE такая же.

Связь идет через id отца (father).
Анатолий73
Грубо говоря мне нужно получить такую таблицу:
<tbody>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед </td>
<td>
отец</td>
<td>
сын</td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед</td>
<td>
отец</td>
<td>
дочь</td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед</td>
<td>
сестра отца</td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед</td>
<td>
брат отца</td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед</td>
<td>
сестра отца</td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед </td>
<td>
дед</td>
<td>
брат отца</td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед</td>
<td>
сестра отца </td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
дед</td>
<td>
брат отца</td>
<td>
сын брата отца</td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
брат деда</td>
<td></td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
прадед</td>
<td>
сестра деда</td>
<td></td>
<td></td>
</tr>
<tr>
<td>
прапрадед</td>
<td>
брат прадеда</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>



Возможно ли это сделать? Если да, то как,
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.