我正在尝试选择类别(仅限类别),其中fiels(位于单独的表中)的show值设置为1.
我设法用INNER JOIN制作它,但问题是,这将获得所有内容(甚至是字段本身),所以当我尝试使用while和print类别时,它会打印一个类别多次,因为很多字段是那里。
$get_cats = dbquery("SELECT A.field_cat_name, A.field_cat_id FROM ".DB_USER_FIELD_CATS." A INNER JOIN ".DB_USER_FIELDS." B ON A.field_cat_id=B.field_cat WHERE B.field_show!='0' ORDER BY field_cat_order");
while ($cat = dbarray($get_cats)){
echo "<div class='tester' id='cat-".$cat['field_cat_id']."'><span>".$cat['field_cat_name']."</span></div>";
}
返回
CONTACT INFORMATION
CONTACT INFORMATION
CONTACT INFORMATION
CONTACT INFORMATION
CONTACT INFORMATION
CONTACT INFORMATION
CONTACT INFORMATION
MISCELLANEOUS INFORMATION
MISCELLANEOUS INFORMATION
STATISTICS
STATISTICS
STATISTICS
一些想法?我试过谷歌搜索,但不知道告诉谷歌搜索什么,所以它会告诉我相关的结果。
TL; DR
我需要获得所有具有显示值设置为1的字段的类别。类别和字段位于单独的表中。
感谢。
答案 0 :(得分:1)
使用$ get_cats = dbquery(&#34; SELECT DISTINCT A.field_cat_name,....
答案 1 :(得分:1)
尝试使用distinct。
SELECT DISTINCT
A.field_cat_name,
A.field_cat_id
FROM ".DB_USER_FIELD_CATS." A
INNER JOIN ".DB_USER_FIELDS." B
ON A.field_cat_id=B.field_cat
WHERE B.field_show!='0'
ORDER BY field_cat_order
答案 2 :(得分:1)
您可以像这样使用DISTINCT
:
$get_cats = dbquery("SELECT DISTINCT A.field_cat_name, A.field_cat_id
FROM ".DB_USER_FIELD_CATS." A
INNER JOIN ".DB_USER_FIELDS." B
ON A.field_cat_id=B.field_cat
WHERE B.field_show!='0'
ORDER BY field_cat_order");