来自数据库的数据与foreach - 从上到下

时间:2011-08-04 08:08:58

标签: php foreach

数据库:

id | name
1  | aaa
2  | bbb
3  | ccc
.. | ...
250| zz3

foreach ($datafromdb as $value){
  echo $value->name();
}
这告诉我:

aaa bbb  ccc  ... zz3

从左到右

if 

<table>
 <tr>
    foreach ($datafromdb as $value){
      echo '<td>' . $value->name() . '</td>';
    }
  </tr>
</table>

显示:

aaa
bbb
ccc
...
zzz3

我怎样才能制作表12x12?

aaa aaa1 bbb2
bbb aaa2 bbb2
... aaa3 bbb3
... ...  ....
zzz zzz2 zzz4

首先从上到下(12x),然后是下一列,再从上到下(12x)等12x

我从左到右,从左到右,从左到右等显示此值,但我想从上到下,从上到下,从上到下等等

5 个答案:

答案 0 :(得分:1)

<table>
        $index=0;
        foreach ($datafromdb as $value)
        {
          if($index%12==0) echo '<tr>' ;
          echo '<td>' . $value->name() . '</td>';
          if($index%12==0) echo '</tr>' ;
        }
</table>

答案 1 :(得分:1)

您可以尝试并排创建表格(使用css浮动它们)

  $index=0;
    foreach ($data as $value)
    {
      if($index == '12') $index = 0;

      if($index == 0) echo '<table style="float:left;">';
      echo '<tr>' ;
      echo '<td>' . $value . '</td>';
      echo '</tr>' ;
      if($index==11) echo '</table>' ;
      $index ++;
    }

答案 2 :(得分:0)

看,我并不完全了解php,但这是我能想到的:

<table>
    <tr>
    var counter=0;
    foreach ($datafromdb as $value){
        if (i%12==0) { echo '<td>'; }
        echo $value->name()+'<br/>';
        if (i%12==0) { echo '</td>'; }
        counter++;
    }
    </tr>
</table>

希望这有帮助!

答案 3 :(得分:0)

<?php

$data = range(1,16);

$maxColumns = 4;
$maxRows = 4;

?>

<table>

    <? for($r = 0; $r < $maxRows; $r++) { ?>
        <tr>
            <? for($c = 0; $c < $maxColumns; $c++) { ?>
                <td><? echo $data[($c*$maxColumns)+$r]?></td>
            <? }?>
        </tr>
    <? } ?>
</table>

您可能想要在回显之前检查数据是否确实存在。

答案 4 :(得分:0)

Daniel Cherrington的代码很好,但只有PHP才能做到:

<?php
$data = range(1,240);
$tab = array();
$max = 12;
for($i=0;$i<sizeof($data);$i++){
    $tab[($i % $max)][] = $data[$i];
}

echo "<table border='1'>";
foreach($tab as $line){
    echo "<tr>";
    foreach($line as $row){
        echo "<td>".$row."</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>