Этот код работает просто отлично, но мне не нравится идея циклов while внутри циклов.
Есть ли другой способ с JOINS, который будет работать более эффективно?
$region_results = mysql_query("SELECT id,region_name FROM regions WHERE page_id='$page_id' ORDER BY position ASC",$con_web) or die (mysql_error());
while($region_rows=mysql_fetch_array($region_results))
{
$region_id=$region_rows["id"];
$region_name=$region_rows["region_name"];
echo " <li>$region_name\n";
echo " <ul>\n";
$block_results = mysql_query("SELECT id,block_name FROM blocks WHERE region_id='$region_id' ORDER BY position ASC",$con_web) or die (mysql_error());
while($block_rows=mysql_fetch_array($block_results))
{
$block_id=$block_rows["id"];
$block_name=$block_rows["block_name"];
echo " <li>$block_name\n";
echo " <ul>\n";
$object_results = mysql_query("SELECT id,object_name FROM objects WHERE block_id='$block_id' ORDER BY position ASC",$con_web) or die (mysql_error());
while($object_rows=mysql_fetch_array($object_results))
{
$object_id=$object_rows["id"];
$object_name=$object_rows["object_name"];
echo " <li>$object_name</li>\n";
}
echo " </ul>\n";
echo " </li>\n";
}
echo " </ul>\n";
echo " </li>\n";
}
этот код выдает:
<li>Left Content
<ul>
<li>Block 1
<ul>
<li>Object 1</li>
</ul>
</li>
<li>Block 2
<ul>
<li>Object 1</li>
</ul>
</li>
<li>Block 3
<ul>
<li>Object 1</li>
</ul>
</li>
</ul>
</li>
<li>Right Panel
<ul>
<li>Block 1
<ul>
<li>Object 1</li>
<li>Object 2</li>
</ul>
</li>
</ul>
</li>
Спасибо.