首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建5x6动态HTML表

构建5x6动态HTML表
EN

Stack Overflow用户
提问于 2012-02-23 10:21:19
回答 3查看 410关注 0票数 0

我正在尝试使用PHP动态构建一个5x6的表。现在我的表格是1x30。我可能遗漏了if语句之类的东西,但就是搞不清楚。如果能帮上一点忙就好了。

代码语言:javascript
复制
 $data = mysql_query("SELECT * FROM product") 
 or die(mysql_error());
 $info = mysql_fetch_array( $data );
 print "<table border cellpadding='0' cellspacing='0'>";
 while($info = mysql_fetch_array( $data )) 
 { 
 Print "<tr><td>".$info['name'] . "  <br /><img src=".$info['pictureURL'] . " /></td></tr>"; 
 }

print "</table>";

下面是一个演示它的http://nova.it.rit.edu/~mpb8676/FinalProject/compare.php

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-23 10:29:36

您正在为具有以下行的每条记录打印新行:

代码语言:javascript
复制
Print "<tr><td>".$info['name'] . "  <br /><img src=".$info['pictureURL'] . " /></td></tr>";

如果你想要一个5x6的表,那么你必须添加一个列计数器:

代码语言:javascript
复制
$data = mysql_query("SELECT * FROM product") 
or die(mysql_error());
$info = mysql_fetch_array( $data );
print "<table border cellpadding='0' cellspacing='0'>";
$numCols = 5;   // Max number of columns
$colCount = 0;  // Current column count (the counter)
while($info = mysql_fetch_array( $data )) 
{ 
    if ($colCount == 0) {
        Print "<tr>";
    }

    Print "<td>".$info['name'] . "  <br /><img src=".$info['pictureURL'] . " /></td>";

    $colCount++;

    if ($colCount >= $numCols) {
        Print "</tr>";
        $colCount = 0;
    }
}

print "</table>";

当然,还有更有效的方法来解决这个问题,但我尽量让你的代码保持得体,这样你就能更好地理解你的问题所在。

票数 2
EN

Stack Overflow用户

发布于 2012-02-23 10:25:01

我相信你需要更多的td:

代码语言:javascript
复制
  Print "<tr><td>".$info['name'] . "</td><td><img src=".$info['pictureURL'] . " /></td><td>and</td><td>so</td><td>on</td></tr>"; 
票数 1
EN

Stack Overflow用户

发布于 2012-02-23 10:27:35

你需要特别对待<tr>。对了,您将为查询中的每个结果输出一个单元格行。相反,您需要:

代码语言:javascript
复制
$cells_printed = 0;
while($info = mysql_fetch_array( $data )) {
   if ($cells_printed % 6 == 0) {
      echo '</tr><tr>'; // start a new row
   }
   echo '<td>blahblahblah</td>';
   $cells_printed++;
}

只有当您所在的单元格是6的偶数倍时,这才会打印<tr>标记,这表明您已到达行尾。

您将需要一些额外的特殊大小写来处理打印的第一行,因此在表的开头不会有一个悬空的</tr>,但这应该足以让您开始使用。您还需要对最后一行进行特殊情况处理,因此即使该行不是打印的“第6”个单元格,也要正确地关闭该行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9406250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档