三列PHP结果表

时间:2012-04-23 20:10:36

标签: php loops html-table

我正在尝试将我的mysql查询显示到一个相当独特的表中。 特点如下:

  1. 结果表有3列
  2. 右上角的单元格保留用于其他内容
  3. [RESULT1] [RESULT2] [内容]

    [result3] [result4] [result5]

    [result6] [result7] [result8]

    ...等

    查询可以带回少至1个结果。 但我很难得到我需要包含在循环中的东西。

    如果有人知道如何追求这样的事情,我会喜欢一些帮助! 提前谢谢!

    编辑**这是我的代码,所以

    结果在三列中出现,但我无法在右上角的单元格中显示其他静态内容。

    $row = 0;
    $column = 0;
    echo "<table>";
    while($row = mysql_fetch_assoc($result)) {
        if ($column == 0) {echo "<tr>";}
        if (($column == 2) && ($row == 0)){echo "<td>content</td></tr><tr>";}
      echo "<td>".$row['business']."</td>";
      $column++;
      if ($column >= 3) {
        $row++;
        echo "</tr>";
        $column = 0;
      }
    }
    echo "</table>";
    

2 个答案:

答案 0 :(得分:0)

假设一个纯html表,你有

$row = 0;
$column = 0;
echo '<table>';
while($row = mysql_fetch_assoc($result)) {
   if ($column == 0) {
      echo '<tr>';
   }
   if (($column == 2) && ($row = 0))
      echo '<td>content</td></tr><tr>'; // output special content, start new row
   }
   echo "<td>$row[something]</td>";
   $column++;
   if ($column >= 3) {
      $row++;
      echo '</tr>';
      $column = 0;
   }
}
echo '</table>';

可能不会按原样运作,但应该给你一般的想法。基本上只输出行/列,直到到达第1行/第3列,然后输出您的特殊内容,否则只输出

答案 1 :(得分:0)

$rows中得到结果行后,将其拆分为数组数组:

$table = array();
while (count($rows)){
   $group = array_slice($rows, 0, 3);
   $rows = array_slice($rows, 3);
   while (count($group) < 3) $group[] = array();
   $table[] = $group;
}

现在$table包含一个3元素数组的数组。最后一个被填充以包含3个元素,添加空数组直到我们有3.然后只输出它:

foreach ($table as $group){
    echo "<tr>\n";
    foreach ($group as $row){
        if ($row['id']){
            echo "<td>".format_data($row)."</td>\n";
        }else{
            # empty padding cell on last row
            echo "<td>&nbsp;</td>\n";
        }
    }
    echo "</tr>\n";
}