1

我正在制作一个 php 页面来从 mysql 数据库中提取信息,在我陷入困境之前,我想我会看看是否有更简单的方法来做我正在做的事情。

我有一个返回多行的 MySql 查询,通过它我可以使用 while 循环轻松循环,它显然会循环通过存在相对“匹配”数据的位置。

拉出的每一行可以有 1 到 16 列数据,每行不同,我目前提取有效信息的方式是硬编码每列的“if”命令,以便只显示已输入的信息,例如:

if($column1 != ""){
    $output .= "<div style='float: left;'>Column 1 Stuff</div>";
    }
if($column2 != ""){
    $output .= "<div style='float: left;'>Column 2 Stuff</div>";
    }

这工作正常,但它不是很动态,如果 Mysql 数据库表扩展,它需要更新代码,它就是。我真正希望能够使用一点代码来做到这一点,比如 while 循环,它对每个包含数据的列执行相同的过程,并忽略任何空白单元格。有没有人知道的有效实现这一目标的好方法?

另外,以防万一,我的“div”都左对齐,这样当它们到达封闭 div 的末尾时,它们会自动将自己整齐地包裹到下一行,所以如果有 9 个结果,就会有 3 行3 个“div”框。这是实现这种结果的有效方法吗?我正在研究在这篇文章中使用“break”命令并回答 -> How to do a Horizo​​ntal looping in PHP,但我遇到了很多与 pre IE9 标签的兼容性问题,因此我尽可能避免实施更多.

提前感谢您的帮助,如果确实可以的话!乔

4

1 回答 1

8

就像是:

$result = mysql_query(...);
while($row = mysql_fetch_assoc($result)) {
   foreach ($row as $key => $val) {
       if (!empty($val)) {
            echo ...
       }
   }
}

将处理结果集中任意数量的列。

于 2012-07-31T14:49:59.923 回答