您好我需要在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
如果我这样做,这可能吗?
答案 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.