【问题标题】:php display record in colspanphp在colspan中显示记录
【发布时间】:2012-01-10 21:13:19
【问题描述】:

我有一条来自数据库的记录,其中包含 id 和 name,我希望它输出 在一个 colspan 上,其中所有记录都以 1-2-1-2-4 的方式分布。我给出http://imageshack.us/photo/my-images/42/wrongb.png/ 的程序清单如下:

<table border="1" cellspacing="0" cellpadding="0" width="200">
$itemCount = 0;
$itemIndex = 0;
$colSpan = 0;  
$itemColCount = 0;
while ($itemCount < $total) { // $row = mysql_fetch_array($result)
$row = mysql_fetch_array($result)
<tr>
if ($itemIndex == 0 || $itemIndex == 2) 
{
      $colSpan=4;
      $itemColCount = 1;
      $itemIndex++;
  }
  else if ($itemIndex == 1 || $itemIndex == 3) {
      $colSpan=2;
      $itemColCount = 2;
      $itemIndex++;
  } 
  else {
      $colSpan=0;
      $itemColCount = 4;
      $itemIndex = 0;
  }
  while ($itemColCount > 0) 
  {
      if ($colSpan > 0) 
      { 
          print "<td colspan=\"$colSpan\">$itemCount".$row['name']."</td>"; // $row['itemName']

      } 
      else 
      {
          print "<td>item$itemCount".$row['name']."</td>";  // $row['itemName']
      }
      $itemCount++;
      $itemColCount--;
  }
  $itemColCount = 0;
  $colSpan = 0;
  print "\n";
 </tr>
}
</table>

我需要有关如何实现所需程序输出的帮助。我需要完成的是这个http://img828.imageshack.us/img828/4411/correctj.png

【问题讨论】:

  • 对不起,我看错图片和正确图片没有太大区别。你能这么好心解释一下你到底想达到什么目标吗?

标签: php mysql html record html-table


【解决方案1】:

由于您的表格似乎有一个非常具体的布局,我建议您将数据放入预定义的模板中,而不是使用条件检查来动态确定要打印的内容。作为一个副作用,它变得更容易阅读和使用。

您需要首先将行数据临时保存到一个数组中,以便您可以一次访问所有数据,而不是 mysql 结果集以线性方式操作。如果您的结果集大小发生变化,这种方法将失效,但您的原始解决方案也会如此。

while($row = mysql_fetch_array($result)) {
$data[] = $row;
}

print 
'<table border="1" cellspacing="0" cellpadding="0" width="200">
    <tr><td colspan="4">'.$data[0]['name'].'</td></tr>
<tr><td colspan="2">'.$data[1]['name'].'</td>
    <td colspan="2">'.$data[2]['name'].'</td></tr>
<tr><td colspan="4">'.$data[3]['name'].'</td></tr>
<tr><td colspan="2">'.$data[4]['name'].'</td>
    <td colspan="4">'.$data[5]['name'].'</td></tr>
<tr><td>'.$data[6]['name'].'</td>
    <td>'.$data[7]['name'].'</td>
    <td>'.$data[8]['name'].'</td>
    <td>'.$data[9]['name'].'</td></tr>

';

如果可能的话,最好从数据库中返回一行中的数据,这样您就可以访问一行中的列,而不是访问 10 行中的一列。这样您就不会遇到依赖条件来生成 html 的情况。如果您也是 DB 端的作者,您应该考虑这一点。如果数据库不在您的控制之下,那么您只需要尽可能地处理它。

【讨论】:

    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2014-06-30
    • 1970-01-01
    • 2013-11-08
    • 2012-10-29
    • 1970-01-01
    相关资源
    最近更新 更多