【发布时间】:2012-07-20 18:57:13
【问题描述】:
我正在做一个项目,让用户能够写一篇文章然后标记它。最后,其他用户进来并投票选出最佳帖子。
在我面临标记挑战之前,一切都像魅力一样:如何找出最简单的方法来处理它们?
我使用多对多关系为每个帖子分配多个标签。但在将它们插入数据库之前我发现了困难。这些困难包括:“我怎么知道这个标签还没有存储在 DB 中?”(当然,我将 name 字段设置为 UNIQUE,但是如果有人输入了预存储的标签,他将面临我不知道的 codeigniter 错误”不希望它显示出来。)..
简而言之,我想出了这个解决方案:
- 从数据库中获取所有标签。
- 存储数组 $all。
- 获取用户输入的标签。
- 将它们存储在数组 $user 中
- 建立一个交叉点$existed
- 在 foreach 循环中
- 在标签表中查询当前标签的id
- 在 posts_has_tags 表中插入 ID。
- 对于另一个数组,我会为每个数组制作一个
- 将标签插入标签表。
- 获取 insert_id() $id
- 将 $id 插入到 posts_has_tags 表中。
嗯,我知道这有点乱。特别是对于随着时间的推移可能会有点大的数组循环..所以,我问你们:) 我对么 .. ? 有没有更简单的方法..?
谢谢。
【问题讨论】:
-
为什么标签实际上需要是唯一的?
-
因为我需要将多个帖子标记在特定标签中,例如旅行..
标签: php mysql codeigniter