- Автор темы
- #1
Здравствуйте. Извиняюсь если не туда, но тема больше подходит для данного раздела:
Имеется БД в которой хранятся данные в виде: (Bitrix iblock)
Их нужно вывести в таблицу вида, причем подразделы podrazd1_2 и.т.д могут добавляться:
В итоге у меня получилось сделать такой вывод но не без ошибок, и таблиц получилось многовато.
Выглядит это так:
Очень смущает колспан, может можно от него как то избавиться?
Имеется БД в которой хранятся данные в виде: (Bitrix iblock)
Код:
Toplvl
podrazd1_1
podrazd1_2
element1
podrazd1_3
element2
podrazd2_1
podrazd2_2
element1
Код:
[COLOR=#000000]----------------podrazd1_1---------------
---podrazd1_2--- - ---podrazd1_3---
element element
element element
Может появиться podrazd1_4
----------------podrazd1_1------------------------*---------
---podrazd1_2--- - ---podrazd1_3--- - ---podrazd1_4---
element element element
element element element [/COLOR]
В итоге у меня получилось сделать такой вывод но не без ошибок, и таблиц получилось многовато.
PHP:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
if(CModule::IncludeModule("iblock"))
{
$counter = 0;
$countertop = 0;
$colspan = 0;
$arFilter = Array("IBLOCK_ID"=>"46", "GLOBAL_ACTIVE"=>"Y", "PROPERTY"=>Array("SPEC"=>"2"));
$db_list = CIBlockSection::GetList(Array("left_margin"=>"ASC"), $arFilter, true);
$db_list2 = CIBlockSection::GetList(Array("left_margin"=>"ASC"), $arFilter, true);
while($ar_result2 = $db_list2->GetNext())
{
if($ar_result2['IBLOCK_SECTION_ID']>"0")
{
$colspan++;
}
}
echo '<table width="100%" cellpadding="0" cellspacing="0" border="0">';
while($ar_result = $db_list->GetNext())
{
if($ar_result['IBLOCK_SECTION_ID']<"0")
{
if($countertop == 1) { echo '</tr>'; $countertop = 0; }
echo '<tr>
<td align="center" colspan="'.$colspan.'">'.$ar_result['NAME'].'</td>
</tr>
<tr>';
} else {
$counter = 1;
echo '<td>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>'.$ar_result['NAME'].'</td>
</tr>';
}
$items = GetIBlockElementList("46", $ar_result['ID'], Array("SORT"=>"ASC"), false, Array("PROPERTY_SPEC"=>"2"));
while($arItem = $items->GetNext())
{
echo '<tr><td>'.$arItem["NAME"].'</td></tr>';
}
if($counter == 1)
{
echo '</table></td>';
$counter = 0;
}
if($ar_result['IBLOCK_SECTION_ID']<"0") { $countertop = 1; }
}
echo '</tr></table>';
}
?>
Код:
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center" colspan="4">Верхний Уровень</td>
</tr>
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Подуровень</td>
</tr>
<tr>
<td>Элемент</td>
</tr>
<tr>
<td>Элемент</td>
</tr>
</table></td>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Подуровень</td>
</tr>
<tr>
<td>Элемент</td>
</tr>
</table></td>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Подуровень</td>
</tr>
<tr>
<td>Элемент</td>
</tr>
</table></td>
</tr>
<tr>
<td align="center" colspan="4">Верхний Уровень</td>
</tr>
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Подуровень</td>
</tr>
<tr>
<td>Элемент</td>
</tr>
</table></td>
</tr>
</table>