php table: отображать 3 ячейки в каждой строке - PullRequest
0 голосов
/ 27 февраля 2012

Я посмотрел здесь: Массив в таблицу с 5 ячейками в каждой строке

, но я не могу адаптировать свой код ..

Мне нужно отобразить результаты PHP-массивав таблице.Таблица должна иметь 3 ячейки для каждой строки.

Я не знаю, как вывести <tr> и </tr> каждую 3-ю строку, и я не знаю, как вывести последнюю </tr> если таблица содержит количество записей, не кратное 3.

Вот мой код:

echo "<table>";


$num=mysql_numrows($result1);
$i=0;
while ($i < $num)

{


$aaa=mysql_result   ($result1,$i,"aaa");
$bbb=mysql_result   ($result1,$i,"bbb");

echo "

<td>$aaa $bbb</td> ";

$i++;

}



echo "</table>";

Ответы [ 3 ]

4 голосов
/ 27 февраля 2012

используйте оператор мод% для проверки третьего элемента.например,

if($i%3 == 0) {
  // this is the third element, start a new tr here
}
1 голос
/ 28 февраля 2012

Чтобы достичь чего-то подобного:

enter image description here

Вы можете легко сделать что-либо настраиваемым, упаковав его в iterator, который содержит строки и столбцы:

/**
 * function to fetch one row from database
 */
function fetch_row($resultSet = NULL) {
    static $result;
    static $i = 0;
    if ($resultSet) {
        $result = $resultSet;
        return;
    }
    return mysql_fetch_assoc($result);
}

fetch_row($result1); // initialize fetch function

$it = new FetchIterator('fetch_row');

$table = new TableIterator($it, 5);

if ($table->valid()) : ?>

<table border="1">

    <?php foreach ($table as $row => $columns) : ?>

        <tr class="<?php echo $row % 2 ? 'odd' : 'even'; ?>">

            <?php foreach ($columns as $index => $column) : ?>

            <td>
                <?php if ($column) echo $column['aaa'], ' ', $column['bbb']; ?>
            </td>

           <?php endforeach; ?>

        </tr>

    <?php endforeach; ?>

</table>

<?php endif;

Некоторые Демо , а также посмотреть Некоторые PHP итератор Fun .

0 голосов
/ 27 февраля 2012

Попробуйте это

echo "<table><tr>";
$num=mysql_numrows($result1);
$i=0;

while ($i < $num)
{
  $aaa=mysql_result   ($result1,$i,"aaa");
  $bbb=mysql_result   ($result1,$i,"bbb");
  if($i %3 ==0)
  {
     echo"</tr><tr><td> $aaa $bbb </td>";  
  }
  else
  {
    echo"<td> $aaa $bbb </td>";  
  }
  $i++;
}
echo "</tr></table>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...