如何使用php在多列中显示数据?

时间:2011-08-03 20:01:33

标签: php mysql html algorithm loops

您好我需要在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

如果我这样做,这可能吗?

4 个答案:

答案 0 :(得分:4)

如果你坚持在桌子上,这应该做你想要的。

获得中点:

$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,然后在另一个div中将$ mid列到最后,并使用CSS并排浮动div。使用表格进行格式化是邪恶的。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

你应该在输出之前安排表格,然后一旦你把所有东西都弄得整齐,就输出代码。

答案 3 :(得分:-1)

一定是在桌子里吗? 如果你有一个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.