php在colspan中显示记录

标签 php mysql html record html-table

我有一条来自数据库的记录,由 id 和 name 组成,我想输出它 在 colspan 上,其中所有记录都以 1-2-1-2-4 的方式分布。我的程序 list 给出了 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 .

最佳答案

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

您需要先将行数据临时保存到一个数组中,这样您就可以一次访问所有这些数据,而不是以 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 端的作者,您应该考虑这一点。如果 DB 不在你的控制之下,那么你只需要尽可能地处理它。

关于php在colspan中显示记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800263/

相关文章:

php - 数据未正确来自数据库

mysql - 我应该担心 GROUP BY 子句中的重复条目吗?

java - 在 Freemarker 中使用动态生成的名称调用函数

php字符串转html

php - 代码改进

php - php中的文件上传方法?

html - 文本对齐中心不适用于内联 block

javascript - 许多网站的标准反馈按钮?

有响应时 PHP SoapClient 故障

MySQL View 使用 AND 返回更多结果?