我使用mysql_fetch_array从mysql结果集中获取数据:
while($row = mysql_fetch_array($qry_result)){
接下来我想将数据放入表中的列中,但每行最多两列。
所以使用表格:
<table>
<tr>
<td>Record Here</td>
<td>Record Here</td>
</tr>
<tr>
<td>Record Here</td>
<td>Record Here</td>
</tr>
<tr>
<td colspan="2">Record Here</td>
</tr>
如上所述,我想循环结果并在循环中创建表列。
这样,记录在结果页面上排成两行和两行。
请记住,如果记录数量奇数,那么最后一个表列需要2的colspan,或者只是使用空列?
有人知道怎么做吗?
如果我在while循环中使用for循环,我会为每个while循环排列相同的记录x次。混乱...
有什么想法吗?
由于
答案 0 :(得分:1)
在while
循环中实现(1索引)计数器。然后添加(在循环之后):
if ($counter%2)
echo '<td></td>';
如果最后一列只包含一行,这将在您的表中留下一个空白单元格。
答案 1 :(得分:0)
这样的事情应该有用......
<table>
<?php
while(true) {
$row1 = mysql_fetch_array($qry_result);
if($row1 === false) break;
$row2 = mysql_fetch_array($qry_result);
if($row2 !== false) {
echo "<tr><td>$row1</td><td>$row2</td></tr>";
} else {
echo "<tr><td coslspan=\"2\">$row1</td></tr>";
break; // output the final row and then stop looping
}
}
?>
</table>
答案 2 :(得分:0)
<table>
<tr>
<?
$i=1;
$num = mysql_num_rows($qry_result);
while($row = mysql_fetch_array($qry_result)){
if($i%2==1)
?>
<tr>
<?
?>
<td <? if($i==$num && $i%2==1)echo 'colspan="2"';?>><?=$row['keyName']?></td>
<?
if($i%2==0)
{
<?
</tr>
?>
}
$i++;
}
?>