【问题标题】:PHP/MySQL - simple tagging system - updating article-tag links?PHP/MySQL - 简单的标签系统 - 更新文章标签链接?
【发布时间】:2011-05-18 07:03:07
【问题描述】:

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

数据库设置(img 借自上一篇文章)

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

但是当页面被提交并且我得到这个标签值数组时,我想我必须根据“标签”表检查每个标签值是否存在。

是否有任何捷径可以做到这一点,或者是否可以通过 tag_id=>tag_value 传递?到目前为止,似乎没有一个首选的 jQuery 库提供:onetwo

【问题讨论】:

    标签: php mysql tagging


    【解决方案1】:

    您也应该始终在服务器端检查提交的数据。 如果你使用的是 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-30
      • 2013-10-07
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多