【问题标题】:Populating with records on Html Table填充 Html 表上的记录
【发布时间】:2010-11-09 03:17:24
【问题描述】:

一个 php 自定义函数从 mysql 查询返回记录集。

我需要填充一个具有相等数量或两者之间平衡的两列表。

我知道我们可以按列数拆分行数,然后使用循环相应地填充每个 td。

有什么建议或最实用的方法将记录集显示到根据大小组织的表格上?

目前不使用模板。

基本上需要控制TD标签是否回显和填充。

示例代码:

$col_num = 2; //Number of colums to parse data onto.

$count_r = mysql_num_rows($result)/$col_num;

echo '<table style="width:400px;border:3px solid green;"><tr><td>'; 

$ui=1;

while($row = mysql_fetch_array($result))
{                            
    if($ui<$count_r)
        {

            echo '<input disabled type="checkbox" value="$row[id]"'; $this->ischecked($uid,$row[id]); echo "/>".$row['name'].'<br>'."\r\n";

        }
    $ui++;
} 

//FIRST COLUMN SET

echo '</td>';

echo '<td>';

//SECOND COLUMN SET


echo '</td></tr></table>';

【问题讨论】:

  • 记录是否按顺序列出有关系吗?

标签: php html mysql html-table


【解决方案1】:

如果您不介意记录的顺序,您可以简单地执行以下操作(假设您的结果位于名为 $result 的数组中):

...
echo "<table>";
for($i=0;$i<count($result);$i+=2):
    echo "<tr>";
        echo "<td>{$result[$i]['field']}</td>";
        echo "<td>{$result[$i+1]['field']}</td>";
    echo "</tr>";
endfor;
echo "</table>";

我不知道这是否是最好的方法,但在你的情况下我会这样做。请记住,我不是在检查是否有任何实际结果,我们假设是这样。要检查是否设置了 $results,您可以使用 if 语句检查它的计数。

注意for($i=0;$i&lt;count($result);$i+=2): 替换为for($i=0;$i&lt;count($result);$i+=2){,将endfor; 替换为},以获得传统格式的代码。

【讨论】:

  • 谢谢。这个例子让我有点脑洞大开,我能够完成这个功能。
【解决方案2】:

我建议使用无序列表 -- &lt;ul&gt;,并将 CSS float 属性应用于其列表项 (&lt;li&gt;)。这样,您就不必担心计算记录的数量。

只需在&lt;li&gt; 中输出每条记录,并将它们全部设置为float: left;

然后限制&lt;ul&gt; 的高度,使其足够短以强制额外的&lt;li&gt;s 浮动到新列。

正如@Steve 所指出的,您还需要将&lt;li&gt; 宽度设置为恒定,以便列保持一致。并使&lt;ul&gt; 的宽度为&lt;li&gt; 宽度的两倍多且小于三倍。

执行此操作的基本方法是在您的查询中调用mysql_num_rows()。将结果乘以每个&lt;li&gt; 的高度,然后除以二,这将是您的&lt;ul&gt; 的高度。这将使每一列的高度相等。

也可以使用&lt;div&gt;s(每个项目一个&lt;div&gt;,全部包裹在一个全局&lt;div&gt;中)。

但使用列表是在 HTML 中显示信息列表的首选方式(除非信息本质上是表格的并且每个字段需要多个列,而您的不是也不需要)。

如果您需要更详细的帮助,请联系great Opera Web Standards article

【讨论】:

  • 不要忘记设置LIs 的宽度以保持标准列宽。否则,它们只会适合文本,因此大小不会相同。
  • @Steve:是的,当然。我忘了提。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2018-03-04
  • 1970-01-01
相关资源
最近更新 更多