![](/img/trans.png)
[英]How can I get a specific value from a database and compare it based on that value with 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.