我的项目是一个活动页面,志愿者可以在活动页面设置是否可以提供帮助。 管理页面显示事件列表以及是否有人可用。
问题是我想让志愿者表明他/她尚未确认是否有空。目前的结果是,当志愿者1已经确认时,志愿者2中未显示未确认的事件。
简单的数据库布局
events:
e_id e_name
1 Test event
2 Party
availability
a_id v_id e_id avail
1 1 1 1
2 1 2 2
3 2 1 1
volunteers:
v_id name
1 abc
2 xyz
正如你可以读出的那样,志愿者2尚未证实他/她参加活动2。
我现在有以下代码(PHP和MySQL)来读出事件和可用性:
$sql = "SELECT * FROM events LEfT JOIN availability ON events.e_id = availability.e_id WHERE availability.v_id is NULL OR availability.v_id = $v_id " ;
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo('<table border="0" width="100%" name="events">');
while($row = $result->fetch_assoc())
{
echo('<tr><td><h2>');
echo $row["e_name"];
echo('</h2>);
echo('<br>Available? ');
if ($row["besch"] == 1 ) { // 1 = present
echo('<img src="img/valid.png"><br>');
}
elseif ($row["besch"] == 2 ) { // 2 = absent
echo('<img src="img/unvalid.png"><br>');
}
else { // ? = No information in database
echo('<img src="img/question.png"> * New event!<br>');
}
echo ('</td></tr>');
}
echo('</table>');
} else {
echo ('There are no events.<hr>');
}
问题在于,一旦志愿者填写了他/她的可用性,事件2就不再显示为志愿者2的新事物。
我的查询中的问题是,一旦志愿者在可用性中提交文件,根据查询,availability.v_id不再是NULL,而是志愿者n°2。
(我稍微编辑了在本网站上提交的代码:将我的荷兰语单词翻译成英语,从MySQL查询中删除了ORDER BY ......我希望不会创建错误,哪些不存在;)< / p>