首先,用户创建活动(大学活动)可以在他的帐户中说TechTo
,他只能使用以下查询访问该创建的活动
$sql_created=mysqli_query ($dbconfig,"SELECT * FROM events
WHERE userID='".$_SESSION['userid']."'") or die( mysqli_error($dbconfig));
现在我想要实现的是,我有另一个表名event_coordinators
,其中创建事件TechTo
的用户想要在event_coordinators
表中添加协调员,然后是用户添加在event_coordinators
表中还可以控制TechTo
已创建的事件,并可以编辑有关事件的删除
这是event_coordinators
表,其中添加了协调员
coID addBy addedUserID eventID
1 1 3 2
2 1 11 3
3 1 11 2
这是用户创建事件的events
表
这里events.userID=event_coordinators.addBy
eventID userID eventName
2 1 Mind Sparx
3 1 Tech Vision
我如何才能达到某种选择陈述或其他方式来处理上述情况
答案 0 :(得分:0)
听起来你需要这些东西:
select distinct events.*
from events
left join event_coordinators ec on ec.eventName = events.name
where events.userID = {$_SESSION['userid']}
or ec.addedUserID = {$_SESSION['userid']}
请注意,在事件表上添加索引并将其存储在event_coordinators中而不是加入字符串事件名称会更简单,尤其是在事件名称可能不唯一的情况下。
答案 1 :(得分:0)
按照我所读过的内容,你要加上让我们说'"事件A"以用户1的身份进入数据库。 用户1具有编辑/删除事件A的所有权限。 您想将用户2添加到事件协调员,以便他们也可以编辑和删除事件A?
在哪种情况下, 我做了类似
的事情$uid=$_SESSION['userid'];
$sql=mysqli_query($dbconfig, "SELECT eventName FROM event_coordinators WHERE addedUserID='{$uid}'");
if(mysqli_num_rows($sql)) {
echo "You are a co-ordinator of the following events:";
while($r=mysqli_fetch_array($sql)) {
echo "<a href='event.php?event=".$r['eventName']."'>".$r['eventName']."</a><br />";
}
}
在上面的示例中,我检查了查询返回的行数,如果没有与您的查询匹配的行,则无法执行获取数组。< / p>
在活动页面上,或者您要编辑活动或显示活动控件的位置,您可以执行类似
的查询$uid=$_SESSION['userid'];
$event_name=$_GET['event'];
$sql=mysqli_query($dbconfig, "SELECT eventName FROM event_coordinators WHERE addedUserId='{$uid}' AND eventName='{$event_name}'");
if(mysqli_num_rows($sql)) {
//User has access to this event
} else {
//User couldn't be found, therefore no access to this event.
}