0

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

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

我想以下列方式显示它们(如下图所示。

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

<?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
            }
        }
    }
    ?>

虽然下面是我得到的输出。请帮助解决此问题。 在此处输入图像描述

提前谢谢你,KRA

4

2 回答 2

0

首先创建一个类别数组:

$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
        }
    }

}

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

于 2013-06-19T03:39:53.570 回答
0

仅使用 1 行 3 列;

<div>为类别中的每个项目以固定尺寸正常打印。

于 2013-06-19T03:53:28.247 回答