我有一个简单的事件应用程序,其中有事件和用户,用户可以加入多个事件。每个事件都是事件表中的一行。用户有自己的用户表。
我正在尝试找到最简单,最经济的方式来存储所有参加活动的用户。目前我想将用户ID存储在事件表的参与者字段中 - 我将不得不用逗号分隔它们。
我找到了那个部分,但是我很难想到一种方法来读取这个字段,将它们分成一个数组,然后获取每个用户的全名。
希望这是有道理的。
答案 0 :(得分:3)
它将使您的任务变得更加轻松;如果您需要为一个用户查找所有事件,就像查找一个事件的所有用户一样简单。
例如,让所有与会者'名字,就像
SELECT u.name
FROM user u
INNER JOIN attendance a ON a.userid = u.id
INNER JOIN event e ON a.eventid = e.id
WHERE e.id = <youreventid>;
答案 1 :(得分:0)
您可以像这样使用json format
$events=array('evnt1','evnt2'............,'eventn');
$tostore=json_encode($events); // op will in json string format
在mysql查询中使用$tostore
来存储数据
进一步使用,您可以使用
$allevents=json_decode($evemtsfromdb);
它将返回事件数组
答案 2 :(得分:0)
使用explode是使用逗号分隔的描述快速而简单的方法。
$attendees = explode(',', $db_result['attendees']);
foreach ($attendees as $attendee_id)
{
// code here to get attendee name
}
虽然我本人开始避免以这种方式存储数据,并在必要时开始使用额外的表,以便我可以使用连接等在一个查询中提取我需要的所有数据。在您的情况下,这将把与会者存储在单独的表中,如:
attendee_id | event_id
----------------------
3 | 1
4 | 1
6 | 2