Как вывести информацию в три столба с использованием PHP
|
|
[1] polyks [26.06.2012, 01:37] |
Подскажите пожалуйста, как вывести информацию в три столба с использованием PHP?
<?php $col = 1; echo "<table>"; foreach($this->subcats as $key => $subcat) { $subcat->link = JRoute::_('index.php?option=com_adsmanager&view=list&catid='.$subcat->id."&Itemid=".$this->Itemid); if ($col==1) { $col = 0; echo "<tr><td>"; echo '<a href="'.$subcat->link.'">'.$subcat->name.'</a>'; echo "</td>"; } else { $col = 1; echo "<td>"; echo '<a href="'.$subcat->link.'">'.$subcat->name.'</a>'; echo "</td></tr>"; } } if ($col==0) { echo "<td>-</td></tr>"; } echo "</table>"; ?>
Что поправить в этом коде? Сейчас у меня получается только 2 столбца. |
|
[2] likbezz [26.06.2012, 13:09] |
polyks, Подскажите пожалуйста, как вывести информацию в три столба с использованием PHP? Как обычно, циклом. Типа: Code <?php $col = 1; $i=0; /* Устанавливаем счетчик ячеек */ echo '<table>'; foreach($this->subcats as $key => $subcat) { $subcat->link = JRoute::_('index.php?option=com_adsmanager&view=list&catid='.$subcat->id."&Itemid=".$this->Itemid); if($i%3==0){ /* Проверяем */ echo '<tr>'; } echo '<td><a href="'.$subcat->link.'">'.$subcat->name.'</a></td>'; /* Рисуем ячейку */ if(++$i%3==0){ /* Добавляем единичку и проверяем */ echo '</tr>'; } } echo '</table>'; ?> Где: $i%3 = цельночисленный остаток от деления на 3 - количество ячеек.
Вот по такому принципу. |
|
[3] polyks [26.06.2012, 23:41] |
Поняла, спасибо. |
|
[4] likbezz [27.06.2012, 05:58] |
polyks, Поняла-то - это хорошо) Вопрос в другом, у вас все работает? Если переменная $i уже занята, то бишь есть и обозначена в шаблоне/коде, можете её заменить на любую свою, уникальную в пределах шаблона. Например $my_var_for_table или $tr_count - какую придумаете, такая и будет). Примерно так отрисовывается любая таблица, тут главное понять принцип, а он не сложен)
Проще, конечно через цикл for - там уже есть счетчик проходов, но раз у вас уже есть foreach то необходим дополнительная переменная, считать количество пройденных циклов. |
|
[5] polyks [12.07.2012, 12:20] |
Да, уже все работает  |
|
[6] likbezz [12.07.2012, 12:50] |
polyks, Очень хорошо, значит моя писанина не прошла даром) Здорово) |
|