gpt4 book ai didi

php在colspan中显示记录

转载 作者:行者123 更新时间:2023-11-30 23:34:25 24 4
gpt4 key购买 nike

我有一条来自数据库的记录,由 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com