PHP: разбить строки из базы на списки UL LI

Ilekor
На сайте с 22.04.2009
Offline
138
860

Здравствуйте!

И снова я с нубским вопросом, уже голову всю сломал, может устал, ХЗ.

Вообщем к сути:


//Количество колонок UL
$NUM_COLS = 4;
//Запрос
$sql_result = $db->query(tratata);
//Узнаем количество строк
$NUM_COUNT = $db->num_rows($sql_result);
//Разделим, что бы получить 4 колонки из N строк
$NUM_COLS = intval($NUM_COUNT / $NUM_COLS);
while($row = $db->get_row($sql_result))
{
$res .= "<li>".$row['name']."</li>"
}

Требуется получить

имя 1

имя 2

имя 3

имя 4

имя 5

имя 6

имя 7

имя 8

имя 9

имя 10

в исходно коде так


<ul>
<li>имя 1</li>
<li>имя 2</li>
<li>имя 3</li>
</ul>
<ul>
<li>имя 4</li>
<li>имя 5</li>
<li>имя 6</li>
</ul>
<ul>
<li>имя 7</li>
<li>имя 8</li>
<li>имя 9</li>
</ul>
<ul>
<li>имя 10</li>
</ul>

$NUM_COUNT - может быть как нулевым так и не парным числом, помогите, пожалуйста.

Лучший дорген 21 века AgDor(http://agdor.info)
grey109
На сайте с 15.06.2005
Offline
160
#1

Наверно как-то так (пишу не проверяя):

...

$n = 0;

while($row = $db->get_row($sql_result))

{

if ($n==0) echo “<ul>”;

$res .= "<li>".$row***91;'name'***93;."</li>"

if (++$n>2)

{

echo “</ul>”;

$n = 0;

}

}

VHS
На сайте с 28.09.2007
Offline
142
VHS
#2

ну да, или через $x%$NUM_COLS

$NUM_COLS = intval($NUM_COUNT / $NUM_COLS); - это что то из пагинатора похоже, абсолютно тут ненужное, да и вообще слабо понятное

Ilekor
На сайте с 22.04.2009
Offline
138
#3

grey109, В конец добавил if($NUM_COLS % 1 == 0) $ul = "</ul>"; для проверки, если цифра не парная, закрыть тег.

Думаю верно все?

VHS:
ну да, или через $x%$NUM_COLS

$NUM_COLS = intval($NUM_COUNT / $NUM_COLS); - это что то из пагинатора похоже, абсолютно тут ненужное, да и вообще слабо понятное

Попробуйте еще раз прочесть. Я получаю количество строк что бы разделить эти строки на 4 колонки. Строк может быть как 100 так и 4 мне нужно их на 4 колонки делить.

C
На сайте с 04.02.2005
Offline
277
#4

$out = ''
$ul = 'ul'
$i = 1;
foreach {
$out .= $ul;
$out .= <li> <li>
if $i % $NUM_COLS
$ul = ''
else
$ul = '/ul ul'
$i++
}
if $ul
$out .= /ul
else
удалить последний ul

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий