конец и начало нового UL каждые 10 результатов MySQL - PullRequest
1 голос
/ 04 июня 2011

все, что я хочу сделать, это завершить текущий и начать новый UL каждые 10 результатов

вот мой код, который не работает 100%:

    $sql1 = mysql_query("select * from `provinces` order by `name` asc");

    while ($row1 = mysql_fetch_assoc($sql1))
    {
        echo '<li id="popup_'.strtolower(str_replace(' ', '_', $row1['name'])).'">';
        echo '<ul>';

        $sql2 = mysql_query("select * from `cities` where `id_province`='".$row1['id']."' order by `name` asc");
        $count = 1;

        while ($row2 = mysql_fetch_assoc($sql2))
        {
            if ($count % 10 == 0)
                echo '</ul>';

            echo '<li>'.$row2['name'].'</li>';

            if ($count % 10 == 0)
                echo '<ul>';

            $count++;
        }

        echo '</ul>';
        echo '</li>';
    }

Ответы [ 2 ]

5 голосов
/ 04 июня 2011

замените это

if ($count % 10 == 0)
       echo '</ul>';

на

    if ($count % 10 == 0)
            echo '</ul><ul>';

И полностью удалите вторую проверку

        if ($count % 10 == 0)
            echo '<ul>';

В противном случае ваш html облажается

// мне потребовалось некоторое время, чтобы получить ответ, потому что проблему было нелегко определить :)

0 голосов
/ 05 июня 2011

, поэтому он должен работать с новыми результатами ul AFTER 10 ... если вы хотите, чтобы ДО каждого десятого результата вы устанавливали блок if перед выводом li

$sql1 = mysql_query("select * from `provinces` order by `name` asc");

    while ($row1 = mysql_fetch_assoc($sql1))
    {
        echo '<li id="popup_'.strtolower(str_replace(' ', '_', $row1['name'])).'">';
        echo '<ul>';

        $sql2 = mysql_query("select * from `cities` where `id_province`='".$row1['id']."' order by `name` asc");
        $count = 1;

        while ($row2 = mysql_fetch_assoc($sql2))
        {
            echo '<li>'.$row2['name'].'</li>';
            if ($count % 10 == 0)
                echo '</ul><ul>';
            $count++;
        }

        echo '</ul>';
        echo '</li>';
    }
...