如何使用php从不同的行中获取相同的值

如何使用php从不同的行中获取相同的值,php,mysql,Php,Mysql,我有一个数据库和一个表。表名是:cranetype他们有4个字段cf_did,cf_firstname,cf_comment,cf_cranetype 下面是数据库值 cf_did cf_firstname cf_comment cf_cranetype 1 Alexy tfhgfnjh 2,3 2 Thomas fdghfgh 11,6,3 3 Thomas cgjk

我有一个数据库和一个表。表名是:cranetype他们有4个字段cf_did,cf_firstname,cf_comment,cf_cranetype

下面是数据库值

cf_did  cf_firstname cf_comment   cf_cranetype 

1       Alexy         tfhgfnjh       2,3    
2       Thomas        fdghfgh       11,6,3  
3       Thomas         cgjkjhl      5,6,11,3        
4       Thomasxc       cgjkjhl      1,6,9,4         
5       Thomaseg       fdghgh       11,12,3     
6       Thomasm        fsgdfgbd     11,6,3  
7       Thomabs        dgtrty       7,9,11  
8       Rdgfghfdg      bfdhh        1,3,4   
9       Gngfdytyt      eertret      1,6,3   
10      Dvbgfj         hfdhhyrtyr   6,3     
11      Hnfhghyt       bfgfdhg      11,6,3  
12      Adgfdyh      dfsdtrst        1  
13      Rida       gfhgfjgh         3,7,68  
我有一个选择框,它们的值是1,2,3,4,。。。。 如果我从选择框中选择值1

我想检查数据库tablecranetype字段cf\u cranetype

例如:

我的代码是:

$cranetype = $_POST['cranetype'];
$words = explode(',', $cranetype);
if (strlen($cranetype) > 0) {
    $Where = '';
    foreach ($words as $Item) {
        $Where = "cf_cranetype LIKE '%$Item%' AND";
    } 
    $Where = substr($Where, 0, -4);
    $list_ul = "(SELECT * FROM cf_directory` WHERE $Where)";
    $query = mysql_query($list_ul) or die(mysql_error());
}

在mysql中使用Find_in_set

SELECT * FROM cranetype WHERE FIND_IN_SET ('1',cf_cranetype);
你需要使用。请查看链接以了解更多说明。 这是你的问题


从cranetype中选择*,其中查找集合“1”中的\u,cf\u cranetype;

解决方案是使用“在集合中查找”和“组中查找”:

演示: 输出:
我的代码是$cranetype=$\u POST['cranetype']$单词=爆炸“,”,$cranetype;如果strlen$cranetype>0{$Where=;foreach$words作为$Item{$Where=cf_cranetype,如“%$Item%”和;}$Where=substr$Where,0,-4;$list_ul=SELECT*从cf_目录`Where$Where;$query=mysql_query$list_ul或diemsql_error;}}`Find_in_集中:它不会给出正确的结果。例如,如果我们必须搜索3,那么如果cf_cranetype=1,它不会显示13。4,8,9,12. 这些是你做的。这是你想要的结果。所以我给出了这个查询select*FROM cranetype,其中cf_cranetype类似于“%1%”;如果我选择cf\u cranetype=11,请使用LIKE QUERYI的这种格式。如何获取cf\u所做的所有行。从表中,如2,3,5,6,7,11im使用此代码,但没有输出,我得到了错误消息函数数据库名称。查找集合中的集合不存在我已在本地检查其工作正常@Alexyuisir,我使用这个代码选择组,就像cranetype中的查找集'1',cf_cranetype>0;我得到了正确的答案。cf|u dids |+------+| 4,8,9,12 |如何显示cf|u did、cf|u firstname、cf|u commentall字段值..如果此代码仅显示cf|u did值,那么还有一个问题吗?如何使用此代码选择GROUP_CONCATcf_did as cf_dids->FROM cranetype->WHERE FIND_IN_SET'1',cf_cranetype>0;要显示cf_did、cf_firstname、cf_commentall字段值..如果此代码仅显示cf_did值。请使用cf_did、cf_firstname、cf_comment替换组cf_did,如cf_dids所示。
$cranetype = $_POST['cranetype'];
$words = explode(',', $cranetype);
if (strlen($cranetype) > 0) {
    $Where = '';
    foreach ($words as $Item) {
        $Where = "cf_cranetype LIKE '%$Item%' AND";
    } 
    $Where = substr($Where, 0, -4);
    $list_ul = "(SELECT * FROM cf_directory` WHERE $Where)";
    $query = mysql_query($list_ul) or die(mysql_error());
}
SELECT * FROM cranetype WHERE FIND_IN_SET ('1',cf_cranetype);
SELECT GROUP_CONCAT(cf_did) as cf_dids
FROM `cranetype` 
WHERE FIND_IN_SET('1', `cf_cranetype`) > 0;
create table cranetype(cf_did int,  cf_firstname varchar(100), cf_comment varchar(100),  cf_cranetype varchar(50)); 
insert into cranetype values
(4,       'Thomasxc',       'cgjkjhl',      '1,6,9,4'),         
(7,       'Thomabs',        'dgtrty',       '7,9,11'),  
(8,       'Rdgfghfdg',      'bfdhh',        '1,3,4'),   
(9,       'Gngfdytyt',      'eertret',      '1,6,3'),
(12,      'Adgfdyh',      'dfsdtrst',        '1');

SELECT GROUP_CONCAT(cf_did) as cf_dids
FROM `cranetype` 
WHERE FIND_IN_SET('1', `cf_cranetype`) > 0;
mysql> SELECT GROUP_CONCAT(cf_did) as cf_dids
    -> FROM `cranetype`
    -> WHERE FIND_IN_SET('1', `cf_cranetype`) > 0;
+----------+
| cf_dids  |
+----------+
| 4,8,9,12 |
+----------+
1 row in set (0.00 sec)