$ participants是MYSQL中的VARCHAR
,看起来像这样的q1qq2qq3qq4qq5qq6q
。我要的是有一个if语句
如果找到q$_SESSION["UserID"]q
,则执行该命令,也就是说,我希望它查找$participants
中的某些输入,例如q2q
。
我不知道该怎么写$_SESSION["UserID"]
是MYSQL数据库中的id列之一,因此等于2之类的数字。
我在php中尝试了以下内容
if(strpos($participants, q$_SESSION["UserID"]q)){
echo "succeeded";
};
但这不起作用。此外,我也希望能够将
q$_SESSION["UserID"]q
删除。我试过了$participants = preg_replace("q{$_SESSION["UserID"]}q", "", $participants);
但这不起作用。有想法吗?
最佳答案
您可以执行以下操作:
if(strpos($participants, "q" . $_SESSION["UserID"] . "q") !== FALSE){
echo "succeeded";
};
或者您可以在MySQL中使用
LIKE
语句,例如SELECT * FROM table WHERE participants LIKE "%q2q%";
但是,正如RiggsFolly所说,这是一种存储数据的可怕方式。创建一个具有主键,主表外键和参与者ID的参与者表。
例如。
participantinstanceid int primary key
instanceid int foreign key -> Your instance table
participantid int foreign key -> participant table
这样,您可以仅基于instanceid查询表以获取所有参与者。如果您需要进一步的帮助,我很乐意为您提供更好的数据库结构。