【问题标题】:Separate MYSQL results into separate HTML Tables将 MYSQL 结果分离到单独的 HTML 表中
【发布时间】:2016-12-13 18:56:54
【问题描述】:

我尝试在每个组之后制作单独的 HTML 表格:

$query = "SELECT * FROM NonBillableTime WHERE TimeIn LIKE '$MondayP2%' ORDER BY CreatedUser ASC";
$members = mysql_query($query) or die($query."<br/><br/>".mysql_error());
while ($row = mysql_fetch_assoc($members)) {

示例 HTML 表 1 将返回 CreatedUser 编号为 5 的所有内容 然后表格将结束,新表格将开始并返回 CreatedUser 编号为 6 的所有内容。

我面临两个问题:-

  1. 我不知道我有多少用户,因为它发生了变化。
  2. 它需要从while ($row = mysql_fetch_assoc($members)) { 执行,因为我正在进行其他计算

是的,我想使用 MYSQL,并且知道要添加注入预防功能

【问题讨论】:

  • 所以检查你的 while 循环中的结果......如果 CreatedUser = 5,则添加到表 A,否则,添加到表 B。 mysql_ 已弃用。
  • 我不知道 CreatedUsers 号码......它不是静态的,因为它会改变
  • 我想只要检测到新的CreatedUser 值,您的输出循环就会简单地关闭并打开 HTML 表。只需跟踪“当前”值并在循环的每次迭代中检查新值是否与当前值不同。
  • 每次在新代码中使用the mysql_ 数据库扩展a Kitten is strangled somewhere in the world 时,它都已被弃用,并且已经存在多年,并且在 PHP7 中永远消失了。如果您只是学习 PHP,请花精力学习 PDOmysqli 数据库扩展。 Start here
  • 那么也许你应该考虑听

标签: php mysql


【解决方案1】:

在这里保持代码相当通用,但大概你目前正在做这样的事情:

// output a table header
while ($row = mysql_fetch_assoc($members)) {
    // output a table row
}
// output a table footer

如果您想在该循环中定期开始一个新表,您需要添加一个条件来确定何时执行此操作。所以结构会更像这样:

$currentUser = 1;
// output a table header
while ($row = mysql_fetch_assoc($members)) {
    // output a table row
    if ($row["CurrentUser"] != $currentUser) {
        // output a table footer
        // output a table header
        $currentUser = $row["CurrentUser"];
    }
}
// output a table footer

这是非常即兴的,因此这里可能存在逻辑错误,即在某些条件或类似性质的情况下显示部分表格,诚然。但希望这个想法的要点正在被传达。基本上在循环中,您可以根据条件关闭并重新打开表格(将您拥有的数据中的任何信息放入这些页眉/页脚)。您只需要跟踪在这种情况下使用的数据。在这种情况下,结果的“当前”CurrentUser 值。

【讨论】:

  • 感谢大卫,我不得不尝试一下,但这是一个很好的开始。谢谢!
猜你喜欢
  • 2011-07-11
  • 2013-09-03
  • 2015-04-20
  • 2013-08-02
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 1970-01-01
相关资源
最近更新 更多