【问题标题】:Custom Table using SQL query and php使用 SQL 查询和 php 自定义表
【发布时间】:2014-05-03 22:57:35
【问题描述】:

我正在尝试从 sql 查询创建一个表,但我只需要每个表行有 3 个结果。

我有一个大约 47 个名称的列表,所以我可以在新行上打印它们,但是我将如何创建一个表,其中 while 循环将打印一个表行,然后使用查询打印 3 个表数据单元格为接下来的 3 个值创建一个新行?

例如:

结果_1 |结果_2 |结果_3
结果_4 |结果_5 |结果_6
结果_7 |结果_8 |结果_9

当前的 While 循环:

while($row = mysql_fetch_assoc($result)) {

      echo "<tr>";  
      echo "<td><input type='checkbox'> ".$row['name']."</td>";
      echo "<td><input type='checkbox'> ".$row['name']."</td>";
      echo "<td><input type='checkbox'> ".$row['name']."</td>";
      echo "</tr>";


        }

数据库结构:

标识 |名称
1 |结果_1
2 |结果_2
3 |结果_3
4 |结果_4

提前致谢!

【问题讨论】:

  • 您是否考虑过在遍历查询结果以显示表格时使用嵌套的 for/while 循环?如果您可以发布更多代码/数据库结构以及您迄今为止尝试过的其他内容,那将会很有帮助。
  • 我用 while 循环代码和数据库结构更新了帖子。谢谢

标签: php html mysql html-table


【解决方案1】:

您可以使用取模运算符 (%) 来检查您是否准备好换行。

    $number_of_names = count($names);
    $number_of_columns = 3; //you can change this at any point

    echo "<table><tr>";

    for($i=0;$ i<$number_of_names; $i++){
        echo "<td>" . $names[$i] . "</td>";

        if ($i % $number_of_columns == ($number_of_columns - 1) && $i<$number_of_names-1){
            echo "</tr><tr>";
        }
     }

     echo "</tr></table>";

【讨论】:

  • 谢谢,这太完美了!
【解决方案2】:

尝试使用 for 循环遍历结果,然后使用取模运算符比较迭代器除以 3 的余数。

echo "<tr>";
for($i = 0; $i<mysql_num_rows($result); $i++) {
  if($i%3==0) {
    echo "</tr><tr>";
  }
  $row = mysql_fetch_assoc($result)
  echo "<td><input type='checkbox'> ".$row['name']."</td>";
}
echo "</tr>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多