php - PHP中的动态行列显示

标签 php html mysql

正如我在逻辑中提到的,我有 3 个表。类别数量和数量每个类别的域名不固定,因为它们是通过管理面板管理的。所以每行 3 列是固定的,但有多少行是不固定的。

我想用下面提到的方式显示类别和每个类别的数据。

I want to display them in following way (as explained in below image.

我正在使用下面的逻辑来实现所需的输出,它给出了不同的输出。请帮助纠正我的逻辑,以便它可以像上面的示例一样工作。

<?php
$str_query_select = "SELECT d.domainpkid,d.domainname,c.categorytitle,dc.categorypkid FROM tr_domainname_category dc ";
$str_query_select .= "LEFT JOIN t_domainname d ON dc.domainpkid=d.domainpkid ";
$str_query_select .= "LEFT JOIN t_domainname_category c ON dc.categorypkid=c.categorypkid ";
$str_query_select .= "WHERE c.visible='YES' AND d.visible='YES' ORDER BY c.categorytitle,d.domainname ";
$rs_cat_list = GetRecordSet($str_query_select);

if (!$rs_cat_list->eof()) { // Check if recordset is not empty
$int_cnt = 0; // Used to make new row
$int_cat_pkid = 0; // Used to validate categorypkid
    while (!$rs_cat_list->eof()) { // loop starts
        if (($int_cnt % 3) == 0) { // To display 3 columns per row
        ?>
        <tr> 
        <?php } ?>
            <td width="250" align="left" valign="top">
            <?php
            if ($int_cat_pkid != $rs_cat_list->fields("categorypkid")) {
                $int_cat_pkid = $rs_cat_list->fields("categorypkid");
                print("<b>" . $rs_cat_list->fields("categorytitle") . "</b><br/>");
            }
            print($rs_cat_list->fields("domainname") . "<br/>");
            ?>
            </td>
            <?php
            $int_cnt++;
            $rs_cat_list->MoveNext();
            if (($int_cnt % 3) == 0) { // 
            ?>
        </tr>
            <?php
            }
        }
    }
    ?>

下面是我得到的输出。请帮助解决这个问题。 enter image description here

预先感谢您, 克拉克

最佳答案

首先创建类别数组:

$cat = array();
while (!$rs_cat_list->eof()) { // here is your while loop
  $cat[$rs_cat_list->fields("categorypkid")][] = $rs_cat_list->fields("domainname");
  $rs_cat_list->MoveNext();
}

现在使用$cat数组进行处理。

foreach($cat as $key=>$val) { //这里你可以把上面的逻辑放在$cat数组中来完成这些事情 if (($int_cnt % 3) == 0) {//每行显示 3 列 ?> “,$val); ?>

        if (($int_cnt % 3) == 0) { // 
        ?>
    </tr>
        <?php
        }
    }

}

注意:请根据您的需要进行更改。

关于php - PHP中的动态行列显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17172652/

相关文章:

mysql - 外键引用语法错误

python - 如何使用 Python 查询 MySQL 数据快照?

php - 如何使第二个字符大写?

javascript - 从选定的持续时间循环播放视频

html - 带内联 block li 的一排画廊,所有布局都取决于 % 高度

php - 传递数组并从 MySQL 表中删除

mysql按不排序排序

php - 使用 REGEX 获取查询中的别名列

php - 验证检查(如果 1 等于数据库中的某个值)Laravel 5

php - 如何在 PHP 中从 sql 表填充下拉菜单