Перейти к содержимому


Вывод древовидных данных


В теме одно сообщение

#1 dev77rus

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

  • Пользователи
  • PipPipPip
  • 114 сообщений
  • Пол:Мужчина

Отправлено 19 Сентябрь 2013 - 22:02

Здравствуйте! Подскажите пожалуйста, как сделать такой отчет, чтобы вывести общую таблицу из нескольких связанных таблиц? Например, у меня есть таблица #1 - главная таблица, и таблица #2 - подчиненная. Я хочу вывести данные таким образом, чтобы были отображены списком все записи из таблицы #1, и если у какой либо записи этой таблицы существуют подчиненные записи из таблицы номер 2, то записи подчиненной таблицы выводились бы под родительской записью тоже списком.
Таким образом хотелось бы научиться выводить данные с древовидной структурой и разным уровнем вложения.
Простые запросы умею делать, а в этом случае сообразить не получается.
Прошу вашей помощи!


#2 Гость_Roman_*

  • Гости

Отправлено 23 Сентябрь 2013 - 08:17

Подготовка данных:
$result = data_select(1, "`status`=0");
while ($row = sql_fetch_assoc($result))
  {
	$data = $row;
	$subres = data_select(2, "`status`=0 and `f111`=",$row['id']); // Поле `f111` - связь с таблицей 1.
	while ($subrow = sql_fetch_assoc($subres))
		$data['subres'][] = $subrow;
	$lines[] = $data;
  }
$smarty -> assign("lines", $lines);
Отображение:
<ul>
{foreach from=$lines item=data}
  <li>{$data.id} - {$data.add_time}
    <ul>
	{foreach from=$data.subres item=subdata}
	 <li>{$subdata.id} - {$subdata.add_time}</li>
	{/foreach}
    </ul>
  </li>
{/foreach}
</ul>






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных