PHP / MySQL - 简单的标记系统 - 更新文章标记链接?

时间:2011-05-18 07:03:08

标签: php mysql tagging

我想为我的新闻栏目构建一个简单的标记系统

数据库设置(img借鉴了之前的帖子)

DB Setup something like

在我的“编辑文章”屏幕上,现在有一些标记位于输入字段中,用户可以删除或键入新标记。一切都好。

但是当页面被提交并且我得到了这个标记值数组时,我想我必须针对'Tag'表检查每个标记值是否存在。

是否有任何快捷方式可以执行此操作,还是以某种方式可以通过tag_id => tag_value?到目前为止,没有一个首选的jQuery库似乎提供:onetwo

1 个答案:

答案 0 :(得分:2)

您也应该始终检查服务器端提交的数据。 如果您使用的是MYSQL,可以试试这个:

$sql = "SELECT a.* FROM (";
$first = true;
foreach( $submitted_tag_array as $v ) {
    $v = mysql_real_escape_string($v);
    $sql .= $first
        ? "\n\tSELECT '$v' AS tag"
        : "\n\tUNION ALL SELECT '$v'";
    $first = false;
}

$sql .= "\n) AS a"
    ."\nLEFT JOIN [tag] t ON t.tag_id = a.tag"
    ."\nWHERE t.tag_id IS NULL";

$result = mysql_query($sql);

if( $row = mysql_fetch_assoc($result) ) {
    // We found atleast one tag that doesn't exist in the database! Do something about it!
}

上面的代码假设您在提交中获得了一个tag_id数组。如果您改为获取标签名称,则只需更改

即可
."\nLEFT JOIN [tag] t ON t.tag_name = a.tag"