0

使用 php 和 mysql 在有限制的表格单元格中显示记录。

表格单元格:4 并显示记录内容​​长度 5

输出:

1  6   11  16 
2  7   12  17    ---------> Row 1
3  8   13  18
4  9   14  19 
5  10  15  20 

21  26   31  36 
22  27   32  37  ---------> Row 2
23  28   33  
24  29   34  
25  30   35   

任何人都可以帮助我使用 php 以这种格式显示记录。

谢谢。

4

2 回答 2

3

尝试这个 :)

<?php
$a = array ("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");  
echo '<table>';
echo '<tr><td>';
$columns = 4;   // how many columns you want.
$break = ceil(count($a)/$columns);
for($i=0;$i<=count($a);$i++)
{
    if($i%$break==0)
    {
        echo "</td><td>";
    }
    echo '<a>'.$a[$i].'</a></br>';
}
echo '</td></tr>';
echo '</table>';
?>
于 2013-09-17T07:51:34.613 回答
0

这是模块化的,但可能会因次优的 HTML 内容而中断。然而,这个问题(IMO)的可重用部分是数学问题,第一个代码块解决了这个问题。

define('TABLE_COLS', 4);
define('TABLE_ROWS', 5);
define('TABLE_CELLS', TABLE_COLS * TABLE_DIMENSIONS);

foreach ($results as $k => $contents){
    $i = $k-1; // because 1-indexing is required by the OP
    $grid_num = $i / TABLE_CELLS;
    $row = $i % TABLE_ROWS;
    $col = $i / TABLE_ROWS;
    $grids[$grid_num][$row][$col] = $contents;
}

仅用于验证结果!我们应该使用 DOMDocument 来插入 DOM 元素,而不是串联的回声。

foreach ($grids as $grid){
    print_grid($grid);
}

function print_grid($grid){
    echo '<table>';
    foreach ($grid as $row){
        print_row($row);
    }
    echo '</table>';
}

function print_row($row){
    echo '<tr>';
    foreach ($row as $cell){
        print_cell($cell);
    }
    echo '</tr>';
}

function print_cell($cell){
    echo '<td>'.$cell.'</td>';
}
于 2013-09-17T07:52:30.257 回答