【问题标题】:Tagging pages with PHP and MySQL使用 PHP 和 MySQL 标记页面
【发布时间】:2013-07-05 09:29:32
【问题描述】:

我对 MySQL 和 PHP 还很陌生,但我正在慢慢掌握它。

我正在开发一个包含个人资料页面的网站。我的数据库中有一个用户表,我也打算创建一个配置文件表。

在我解释我的“问题”之前,我想说我实际上还没有开始编写尝试过的解决方案。我喜欢在开始之前计划我的工作,尤其是当它变得复杂时。因此,我无法真正显示任何 sn-ps 代码。

我想为用户配置文件创建一个标记系统。 IE。让个人资料所有者从现有列表中选择关键字,并将它们与他的个人资料页面相关联。

经过深思熟虑并阅读了我收集到的关系数据库后,我应该从创建两个额外的表开始:

1. tags (tag_id, tag_name)
2. tag_rel (tag_id, user_id)

并在每个配置文件与用户分配给它的不同标签之间创建关系,在单独的行上:

(Tag1, UserA)
(Tag2, UserA)
(Tag1, UserB)

等等

然后,当我搜索配置文件时,我只需选择具有特定 tag_id 的所有 user_id。很简单。

我的问题是插入或更改列表时的 PHP 和 MYSQL 查询代码。

我基本上希望用户能够从检查列表或现有标签的下拉选择列表(或任何等效项)中进行选择,选中或取消选中他的选择,然后发送以将其输入到数据库。

我可以想象选择标签的初始输入很容易通过foreach()函数和一个简单的INSERT查询来实现,并且一次从一个值的形式输入数组。

但是当用户返回更改标签时,我将如何指示查询保留一些标签、删除其他标签并插入新标签?做这种事情的最佳方法是什么?

一个想法: 我应该删除用户在 tag_rel 中的所有现有行,然后插入新数组吗?

【问题讨论】:

  • 正如您在计划阶段,简短地说:这种方法是正确的,您可以遵循。但是,此站点并非旨在提供代码。我建议你知道自己的路不错,做一些编码,如果他们愿意的话,你可以提出更多问题。
  • 在我提到的最后一步之前,我可能可以做所有事情。我根本没有足够的经验或知识来思考可能的解决方案。我不知道如何开始。但是谢谢你迄今为止对我的方向的肯定!!

标签: php mysql sql tagging


【解决方案1】:

我会使用这样的程序: 首先,您从数据库中获取用户选择的标签并将它们传递给数组(SELECT from tag_rel where user_id = $userId)

然后你会过去让用户对数组进行操作(添加新标签,删除旧标签)

最后,您将删除旧条目并从提供的数组中插入全新的条目

【讨论】:

  • 谢谢哥们,我会这么做的
【解决方案2】:

最简单的方法是删除该特定 user_id 的 tag_rel 数据,然后重新插入新的数据

【讨论】:

  • 我刚刚得出这个结论!!我会试试这个!谢谢
猜你喜欢
  • 2017-10-05
  • 1970-01-01
  • 2014-09-05
  • 2019-06-20
  • 1970-01-01
  • 2011-02-28
  • 2020-09-19
  • 2013-09-19
  • 2011-07-06
相关资源
最近更新 更多