2015-04-04 48 views
1

我想选择的类别(仅类别),其中fiels(这是在单独的表)有他们的表演值设置为1SQL选择类别中,字段设置为显示

我设法与以使它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,类别和领域都在寿单独的表中的任何字段的所有类别。

谢谢。

+1

如何区分? – colintobing 2015-04-04 12:49:29

+0

@colintobing哈,我是一个白痴,并没有想到:DI刚刚醒来,可能是这样吗?:D发布它的答案,所以我可以接受它。该死的,我现在觉得很愚蠢。 – MiChAeLoKGB 2015-04-04 12:51:56

回答

1

尝试使用不同的

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 
1

使用$ get_cats =的DBQuery(“SELECT DISTINCT A.field_cat_name,....

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"); 
相关问题