我已经在Adjacency模型中构造了一个Mysql表。然后我在屏幕上得到了所需的输出,使用ul和li在多层(标题->子标题->主题)中显示了这些记录。当我查看源代码时,ul li的构建方式不像每个最后一个孩子(即)主题那样正确,其中包括打开和关闭ul li的内容
我拥有的表结构
syl_row_id | syl_title_name | syl_parent_id | syl_position_id
------------------------------------------------------------------
1 | Statistics Basics | 0 | 1
2 | Central Tendency | 1 | 1
3 | Mean | 2 | 1
4 | Median | 2 | 2
5 | Mode | 2 | 3
6 | Probability Basics| 1 | 1
7 | Probability | 6 | 1
8 | ODDS | 6 | 2
代码:
<?php
$pdo = new PDO("mysql:dbname=dbname;host=host","username","password");
$query = $pdo->query("Select * from tablename");
while($row = $query->fetch(PDO::FETCH_ASSOC))
{
if($row['syl_parent_id'] == 0)
{
$topic[] = $row['syl_row_id'];
$head .= "<h3>".$row['syl_title_name']."</h3>";
}
foreach($topic as $heading)
{
if($heading == $row['syl_parent_id'])
{
$subtopic[] = $row['syl_row_id'];
$head .= "<li>".$row['syl_title_name']."</li>";
}
else{
$subtopic[] = "";
}
}
foreach($subtopic as $subheading)
{
if($subheading == $row['syl_parent_id'])
{
$head .= "<ul><li>".$row['syl_title_name']."</li></ul>";
}
}
}
echo "<ul>";
echo $head;
echo "</ul>";
?>
Output for my code:
<ul>
<h3>Statistics Basics</h3>
<li>Central Tendency</li>
<ul>
<li>Mean</li>
</ul>
<ul>
<li>Median</li>
</ul>
<ul>
<li>Mode</li>
</ul>
<li>Probability Basics</li>
<ul>
<li>Probability</li>
</ul>
<ul>
<li>ODDS</li>
</ul>
</ul>
Expected Output:
<h3>Statistics Basics</h3>
<ul>
<li>Central Tendency</li>
<ul>
<li>Mean</li>
<li>Median</li>
<li>Mode</li>
</ul>
<li>Probability Basics</li>
<ul>
<li>Probability</li>
<li>ODDS</li>
</ul>
</ul>