目前我有一段功能正常的代码。但我真正想做的是采用 <?php if strval ..?>
部分并将其作为 {{1}放入 "SELECT * FROM projects"
部分} 子句。我不确定这是否可行或如何实现。任何想法都会受到重视。希望这是有道理的。
WHERE
答案 0 :(得分:1)
如果您的用户ID是唯一编号,并且我理解您的问题,您可以通过以下方式达到此目的:
使用IN - 可以处理字符串和数字(它们必须是唯一的才能使其工作):
$query_activeusers = "SELECT * FROM projects WHERE ".$userid." IN (assignedto)";
或使用FIND_IN_SET - 可以处理字符串,数字区分大小写:
$query_activeusers = "SELECT * FROM projects WHERE FIND_IN_SET('".$userid."', assignedto)"
但我认为你应该看看你的数据库设计。在这样的分隔列表中包含外键的问题在于,外键的重点是使您能够使用索引快速定位另一个表中的信息。通过实现您拥有的数据库,您可以解决各种问题。
答案 1 :(得分:0)
我不确定,但也许这会对你有帮助。
if(strval ...)
{
$where = "where field = $value";
}
现在,您可以在选择查询中使用此$where
变量。只有在if condition
满足时才会执行。
答案 2 :(得分:-1)
如果我正确理解您的代码,您应该使用SQL LIKE
,例如:
$query_activeusers = "SELECT * FROM projects WHERE assignedto LIKE '%," .
((int) $userid) . ",%'";
这里的转换为(int)是为了确保$userid
中没有特殊的SQL字符 - 对整数值进行廉价的SQL引用。您实际上不需要使用strval
作为字符串的连接将该数字转换为字符串。