活动列表的编码结构

时间:2011-07-31 23:51:15

标签: php structure

来自Way/coding method to do activitylist/log

我在上述问题上使用了已接受的答案,通过两个表格来描述活动,其他表格用于活动本身。

table: activitylist
Columns:
id, description, date

table: activities
Column:
id, aID, uID, date

aID是活动ID,uID是用户ID。 activity id是表'activity列'中的id

我现在可以输出:

person ate another persons apple

由于此文本是非个人的,可以用于所有..

如果我想输出怎么办?

Michael ate Peters apple

(实施例)

这需要在说明/文字中分开吗?

我想到你需要在某处包含迈克尔和彼得的uID,但在哪里?我应该如何处理分裂的描述?

我的意思是我不能在表活动列表中添加一行描述:“迈克尔吃了彼得斯苹果” 因为我试图使这些描述具有普遍性,所以它可能是亚当和朱莉娅对迈克尔和彼得的实施......

希望您理解,如果问题请发表评论..

更新: 结论:

这是一个活动列表,显示在页面上完成的所有活动,所有用户都可以看到。然后我想展示一个活动,“迈克评论彼得斯照片”。如何在包含用户时进行活动描述(本例:Mike,peter)

2 个答案:

答案 0 :(得分:1)

只需在活动中添加另一列,并将其命名为uID2。然后在你的描述中添加类似'## UID1 ##评论## UID2 ##的照片',然后使用str_replace替换## UID1 ##和## UID2 ##,如下所示:

$description = activitylist['description'];
$description = str_replace('##UID1##', $uid, $description);
$description = str_replace('##UID2##', $uid2, $description);

您当然必须查询您的数据库,将id替换为与该用户ID关联的名称,但这是您可以在当前设置中使用的基本逻辑。

答案 1 :(得分:0)

如果我要这样做,我会让所有varchars存储可由sprintf解析的字符串。

$uid1 = 'Frank'; $uid2 = 'George';
$format = '%s ate %s\'s apple';
$ret = sprintf($format, $uid1, $uid2);
echo $ret; // Frank ate George's apple