【问题标题】:How to display data in multiple columns with php?如何用php在多列中显示数据?
【发布时间】:2011-08-03 20:01:33
【问题描述】:

您好,我需要从 mySQL 表中构建一个包含两列的表。
这是我现在拥有的:

<table>
<?php
$sql = "SELECT field1, field2 FROM tblX" 
$result = mysql_query($sql) or die("\nError Retrieving Records.");
while($row = mysql_fetch_array ($result, MYSQL_ASSOC)){?>
<tr>
   <td>
       <?=$row['field1']?> - <?=$row['field2']?>
   </td>
</tr>
<?php }?>
</table>

这将创建一个像这样的列表:

1
2
3
4
5

我需要表格在这样的两列中:

1  4
2  5
3

如果我该怎么做,这可能吗?

【问题讨论】:

  • 您是否尝试相应地在 中添加另一个 对?
  • 这些问题不清楚。你没有提到,这两个表的转储结果是什么。谁能确定论点,将数据分成两列?
  • 因为只有一张表。如果我知道我不会在这里问...

标签: php mysql html algorithm loops


【解决方案1】:

如果您坚持要一张桌子,这应该可以满足您的需求。

获取中点:

$mid = ceil(mysql_num_rows($result)/2);

获取一个数组:

while( $row = mysql_fetch_row($result) ) {
    $list[] = $row; }

输出行:

for( $i = 0; $i < $mid; $i++ ) {
    $itemOne = $list[$i];
    $itemTwo = $list[$i + $mid]; 
    // echo them in two tds.
}

不过,我同意马可的观点。你可以很容易地在一个 div 中列出一个到 $mid 的项目,然后在另一个中列出 $mid 到末尾,并使用 CSS 将 div 并排浮动。使用表格进行格式化是邪恶的。

【讨论】:

  • 谢谢!这正是我所需要的。
    开发人员不应该使用表格进行布局,但表格的存在是有原因的。恕我直言,如果您想显示表格数据,最好的方法是在表格中。
【解决方案2】:

读取列表中的所有值,获取半值,编写一个循环显示 [i] 和 [i+halfvalue] 一起

【讨论】:

  • 你建议怎么做?
【解决方案3】:

您的问题不清楚,但听起来您想重新排列数据的显示方式并且不想要标准的逐行输出。如果您的订单需要一种无法循环的方法,您可能应该手动执行此操作。

你应该在输出之前安排好表格,然后当你把所有东西都整理好后,只需输出代码。

【讨论】:

  • 我不知道如何使它更清楚...您建议如何排列动态数据?我认为您不了解动态数据和表格...如果我错了,请纠正我。
【解决方案4】:

必须在表格中吗? 如果您在其中有一个 div 并且您已将其设置为 3 个项目可以包含在高度中。

<div id="container">
  <div class="item">1</div>
  <div class="item">2</div> 
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
</div>

#container { height: 300px; }
.item { height: 100px; }

You can use some css floating to solve that combined with some padding and margin. 

【讨论】:

  • 为什么必须在table标签中?如果您将数据包装到这样的列中,从语义的角度来看,这可能不是表格数据。如果你能用 CSS 做到这一点,它更容易访问。
  • 某些数据在表格中显示效果更好...如果我要显示更多/更少的 5 个元素(他使用的是固定高度),Marko 的解决方案并不好。
  • 高度可以动态设置。基于服务器或客户端。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 2013-10-18
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
相关资源
最近更新 更多