使用mysql_fetch_array将记录彼此相邻放在列中?

时间:2010-11-17 19:41:21

标签: php sql mysql html database

我使用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次。混乱...

有什么想法吗?

由于

3 个答案:

答案 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++;
}
?>