1

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

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

[结果1][结果2][内容]

[结果3][结果4][结果5]

[结果6][结果7][结果8]

...ETC

查询最多可以返回 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>";
4

2 回答 2

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";
}
于 2012-04-23T20:25:11.263 回答
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>';

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

于 2012-04-23T20:22:03.253 回答