我在逻辑中提到了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
答案 0 :(得分: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 =&gt; $ val){ //在这里你可以把上面的逻辑只使用$ cat数组来做事情 if(($ int_cnt%3)== 0){//每行显示3列 ?&GT; “,$ val); ?&GT;
if (($int_cnt % 3) == 0) { //
?>
</tr>
<?php
}
}
}
注意:请根据您的需要进行更改。
答案 1 :(得分:0)
只使用1行3列;
为类别中的每件商品打印固定尺寸的普通<div>
。