0

問題:

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 .= '&nbsp;';
            $response .= '<li class="category">&nbsp;'.$row['Name'] . '</li>';
            $response .= getLowerRanks($row['CID'],$level+1, true);
        }

        $response .= '</ul>';
    }

    return $response;
}

必要な出力:

<ul>
    <li class="category">Litteratur
        <ul>
            <li class="category">&nbsp;Integration av källorna</li>
            <li class="category">&nbsp;Belysning av egna resultat</li>
            <li class="category">&nbsp;Referenser</li>
        </ul>
    </li>
    <li class="category">Validitet
        <ul>
            <li class="category">&nbsp;Huvudsyfte</li>
            <li class="category">&nbsp;Oberoende och beroende variabler</li>
            <li class="category">&nbsp;Analysmetoderna</li>
        </ul>
    </li>
    <li class="category">Reliabilitet
        <ul>
            <li class="category">&nbsp;Metodval</li>
            <li class="category">&nbsp;Metodbeskrivning</li>
            <li class="category">&nbsp;Databearbetning</li>
        </ul>
    </li>
    <li class="category">Språk, stil och struktur
        <ul>
            <li class="category">&nbsp;Språk och stil</li>
            <li class="category">&nbsp;Struktur</li>
        </ul>
    </li>
    <li class="category">Arbetssätt
        <ul>
            <li class="category">&nbsp;Försvar och opposition</li>
            <li class="category">&nbsp;Etiska och samhälleliga aspekter</li>
        </ul>
    </li>
</ul>
4

1 に答える 1

0

PHP コード (第 1 レベル):<li> while ループを閉じる必要があります。

$ctree .= '<ul>';

while ($row = mysql_fetch_assoc($result))
{
    $ctree .= '<li class="category">'.$row['Name'] . '';
    $ctree .= getLowerRanks($row['CID'], 1, true);
    $ctree .= '</li>';
}

$ctree .= '</ul>';
于 2012-06-19T07:30:54.550 に答える