Динамический двухуровневый список php - PullRequest
0 голосов
/ 08 декабря 2010

Я знаю, что это может быть очень легко, но, вероятно, работа допоздна просто остановила мой мозг ... Хорошо.Вот мой PHP, который делает двухуровневый динамический список для меня.http://robertr.pastebin.com/K2XvruPr

<?
    $last = NULL;
    $query = "SELECT s.id AS sect_id, s.name AS sect_name, s.alias AS sect_alias, c.name AS cat_name, c.alias AS cat_alias
    FROM data_sections s, data_categories c
    WHERE s.id = c.section_id
    AND s.deleted = 0
    AND c.deleted = 0";
    echo "<ul>\n";
    $result = mysql_query($query);
    while($list = mysql_fetch_array($result)){

        if($last!=$list['sect_name']) {
            echo "<li>".$list['sect_name']."</li>\n";
            $last = $list['sect_name'];
        }
        echo "<ul>";
        echo "<li>".$list['cat_name']."</li>";
        echo "</ul>\n";
    }
    echo "</ul>";
    ?>

Все на выводе представления выглядит хорошо, но просмотр исходного кода не такой, как я хочу.robertr.pastebin.com/J7bPQeXj (скопировать и вставить в адресную строку).

Может кто-нибудь помочь мне понять, как сделать эти UL-теги второго уровня только один раз для всех категорий, а не для каждой.

Спасибо!

1 Ответ

1 голос
/ 08 декабря 2010

быстрый НЕПРОВЕРЕННЫЙ исправить

<?
$last = NULL;
$query = "SELECT s.id AS sect_id, s.name AS sect_name, s.alias AS sect_alias, c.name AS cat_name, c.alias AS cat_alias
FROM data_sections s, data_categories c
WHERE s.id = c.section_id
AND s.deleted = 0
AND c.deleted = 0";
echo "<ul>\n";
$result = mysql_query($query);
while($list = mysql_fetch_array($result)){

    if($last!=$list['sect_name']) {
        if ($last != null) echo "</ul>";
        echo "<li>".$list['sect_name']."</li>\n";
        $last = $list['sect_name'];
        echo "<ul>";
    }
    echo "<li>".$list['cat_name']."</li>";
}
echo "</ul>\n";
echo "</ul>";
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...