問題:
ul要素とli要素を使用して、SQLの関連する投稿を相互にグループ化しようとしています。しかし、出力を正しく取得できないため、行き詰まりました。
PHPコード(第1レベル):
$query = "SELECT CID, Item AS Name, Parent, Weight FROM betyg_category";
$result = mysql_query($query) or die ('Error (' . mysql_errno() . ') ' . mysql_error());
$ctree .= '<ul>';
while ($row = mysql_fetch_assoc($result))
{
$ctree .= '<li class="category">'.$row['Name'] . '';
$ctree .= getLowerRanks($row['CID'], 1, true);
}
$ctree .= '</li></ul>';
echo $ctree;
PHPの再帰関数:
function getLowerRanks( $id, $level, $option = false )
{
if ( $option )
{
$response = '';
$query = "SELECT CID, Item AS Name, Parent, Weight FROM betyg_category WHERE Status = 1 AND Parent= " . $id . " ORDER BY CID ASC";
$result = mysql_query($query) or die ('Error (' . mysql_errno() . ') ' . mysql_error());
$response .= '<ul>';
while ($row = mysql_fetch_assoc($result))
{
for ($i = 0; $i < ($level-1); $i++) $response .= ' ';
$response .= '<li class="category"> '.$row['Name'] . '</li>';
$response .= getLowerRanks($row['CID'],$level+1, true);
}
$response .= '</ul>';
}
return $response;
}
必要な出力:
<ul>
<li class="category">Litteratur
<ul>
<li class="category"> Integration av källorna</li>
<li class="category"> Belysning av egna resultat</li>
<li class="category"> Referenser</li>
</ul>
</li>
<li class="category">Validitet
<ul>
<li class="category"> Huvudsyfte</li>
<li class="category"> Oberoende och beroende variabler</li>
<li class="category"> Analysmetoderna</li>
</ul>
</li>
<li class="category">Reliabilitet
<ul>
<li class="category"> Metodval</li>
<li class="category"> Metodbeskrivning</li>
<li class="category"> Databearbetning</li>
</ul>
</li>
<li class="category">Språk, stil och struktur
<ul>
<li class="category"> Språk och stil</li>
<li class="category"> Struktur</li>
</ul>
</li>
<li class="category">Arbetssätt
<ul>
<li class="category"> Försvar och opposition</li>
<li class="category"> Etiska och samhälleliga aspekter</li>
</ul>
</li>
</ul>