繁体   English   中英

如何在php中将一个值与多个值进行比较?

[英]How can i compare one value to multiple value in database in php?

我的问题是我在数据库中有一个字段,该字段具有多个值,例如,我有一个表,该表的名称是users,其中我有两个字段,一个是id,另一个字段是爱好。 表结构是这样的:用户表:

       id      hobbies
    -------- -------------
       1      1,2
       2       2 
       3      2,3

兴趣表:

          id      hobbies
    -------- -------------
       1        singing
       2        dancing 
       3        reading

现在我的问题是我希望所有爱好跳舞的用户都从嗜好表中获取ID 2.但是我的查询仅是给用户3作为输出,这是错误的,这是我的PHP代码:

    $scheck = $_REQUEST['scheck'];//$scheck is array of hobbies like 1,2
    if (!empty($scheck)) {
            if (strstr($scheck, ',')) {
                $data3 = explode(',', $scheck);
                $sarray = array();
                foreach ($data3 as $c) {
                    $sarray[] = "t1.hobbies = $c";
                }
                $WHERE[] = '(' . implode(' OR ', $sarray) . ')';
                $inner = ' JOIN hobbies AS t3 ON t1.hobbies = t3.id ';
            } else {
                $WHERE[] = '(t1.hobbies = ' . $scheck . ')';
                $inner = ' JOIN hobbies AS t3 ON t1.hobbies = t3.id ';
            }
        }
      $w = implode(' AND ', $WHERE);
      if (!empty($w)) $w = 'WHERE ' . $w;
     $query = mysql_query("SELECT DISTINCT  t1 . * FROM  `users` AS t1 $inner $w

请给我一些解决方案。

列爱好的用户表的数据类型是什么。 我想如果它的varchar然后查询编写将是困难的。

我的建议是为用户和爱好关系创建一个新表,其中为每个爱好添加多个用户条目。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM