三列PHP结果表

三列PHP结果表,php,loops,html-table,Php,Loops,Html Table,我试图将我的mysql查询显示到一个相当独特的表中。 其特点如下: 结果表有3列 右上角的单元格保留给其他内容 [结果1][结果2][content] [结果3][结果4][结果5] [结果6][结果7][结果8] …等等 查询最多可以返回一个结果。 但我正努力在循环中得到我需要的东西 如果有人知道如何去追求这样的东西,我希望得到一些帮助! 提前谢谢 编辑**这是到目前为止我的代码 结果分为三列,但我无法获得在右上角单元格中显示其他静态内容的条件 $row = 0; $column = 0; e

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

  • 结果表有3列
  • 右上角的单元格保留给其他内容
  • [结果1][结果2][content]

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

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

    …等等

    查询最多可以返回一个结果。 但我正努力在循环中得到我需要的东西

    如果有人知道如何去追求这样的东西,我希望得到一些帮助! 提前谢谢

    编辑**这是到目前为止我的代码

    结果分为三列,但我无法获得在右上角单元格中显示其他静态内容的条件

    $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>";
    
    $row=0;
    $column=0;
    回声“;
    while($row=mysql\u fetch\u assoc($result)){
    如果($column==0){echo”“;}
    如果($column==2)和($row==0)){echo“content”;}
    回显“$row['business']”;
    $column++;
    如果($column>=3){
    $row++;
    回声“;
    $column=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>';
    
    $row=0;
    $column=0;
    回声';
    while($row=mysql\u fetch\u assoc($result)){
    如果($column==0){
    回声';
    }
    如果(($column==2)和($row=0))
    echo'content';//输出特殊内容,开始新行
    }
    回声“$行[某物]”;
    $column++;
    如果($column>=3){
    $row++;
    回声';
    $column=0;
    }
    }
    回声';
    

    可能不会按原样工作,但应该能让您大致了解情况。基本上只输出行/列,直到到达第1行/第3列,然后输出您的特殊内容,否则只输出

    一旦您在
    $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;
    }
    

    显示您迄今为止编写的代码您尝试了什么?我会在MySQL结果数组中进行一个简单的循环,并在“内容”部分使用“I==3”和“I%3==0”等条件来开始一个新行。这只是一个普通的html表格,还是一些纯css版本?@MarcB-是的,普通的html表格我的原始代码与Marc非常相似,所以我现在正在研究这个示例。谢谢Marc。我得到了三列的结果,但每行的第三列都返回一个假$row[something],而不是第一行的“content”和第2+行的有效$row[something]。有什么想法吗?哦,我在第二条IF语句的“echo”之前添加了一个额外的花括号。我在原始帖子中添加的代码将所有内容加载到三列中,但右上角单元格的条件语句似乎不起作用。你知道为什么吗?
    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";
    }