仅向添加到表中的用户显示数据

时间:2017-02-15 18:03:07

标签: php mysql

首先,用户创建活动(大学活动)可以在他的帐户中说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         

我如何才能达到某种选择陈述或其他方式来处理上述情况

2 个答案:

答案 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.
}