PHP-MySQL 标记

标签 php mysql

我有一个漫画网站,目前允许用户按类别选择他们要查看的漫画:Charts、Office、Life、Misc 等。

我想实现一个标签系统,类似于我们在 StackOverflow 上的系统,它将描述每部漫画的更多内容,而不是其类别。例如:在图表类别中,我有几个业务相关...

我的简单解决方案是按照我处理分类的方式来处理它-

  1. 创建一个包含 tagid、tagname、tagdescription 的“Tags”表
  2. 在 comics 表中添加一个 tagid_ForeignKey 字段,并为每个帖子添加一个标签。
  3. 当用户点击标签时,它将仅显示带有该标签的帖子...或者如果还指定了类别,它将显示带有该特定标签的特定类别。

但是,这种方法似乎将我限制为每个类别一个标签。如果我有一部与业务和人际关系相关的漫画怎么办...所以它需要这两个标签。

我如何才能为每部漫画附加多个标签?


编辑:

还有几个问题:

1) 我要在我的新关系表中插入什么……任何东西?

2) 另外,对于 while ($row = $tag->fetch_assoc()) {,如果存在连接,我如何循环遍历一个表?那不是关联数组吗?

3) 问题是我正在回应标签选​​择,所以一旦用户点击一个链接,您如何才能让他们点击另一个链接来分配第二个标签?

enter image description here

function getTags() {
include 'dbconnect.php';
global $site;

$tag = $mysqli->query("SELECT tagid, tagname FROM tags");   
//$tag = $mysqli->query("SELECT * FROM comics c INNER JOIN comictags ct ON (c.comicID = ct.comicID) WHERE ct.tag_id IN (1, 2, 3) GROUP BY c.comic_id");

mysqli_close($mysqli);

while ($row = $tag->fetch_assoc()) {        
    echo "<a href='?action=homepage&site=" . $site . "&tag=" . $row['tagid'] . "&tagname=" . $row['tagname'] . "'/>" . $row['tagname'] . "</a><br />";
  }

}

最佳答案

只需添加另一个表。然后你有三个:一个用于标签,一个用于漫画,一个用于关系。您必须拥有此间接表才能正确存储多对多关系。这允许每个漫画有零个或多个标签(反之亦然)。

关于PHP-MySQL 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14856065/

相关文章:

PHP password_verify() 与 Python bcrypt.hashpw()

php - 在数据库中存储和更新抓取的数据

mysql - 在带有重音的批处理文件上执行sql脚本

mysql - 如何从 MySQL 中的 COUNT(*) 中减去整数

php - 无法从 HTML5 和 PHP 表单在 MySQL 表中插入记录

mysql - 仅当其 Join 记录存在于其他表中时才获取记录

php - lcg_value() 是否有可能掷出完美的 1?

php - MySQL 使用数字状态代码与文本

php - 如何让 Youtube 视频有不同的播放器?

javascript - 如何将可单击行连接到从数据库检索的特定数据部分?