2011-05-18 58 views
1

我想建立一个简单的标签系统为我的新闻栏目PHP/MySQL - 简单标记系统 - 更新文章标记链接?

DB设置(IMG从以前的文章中借用)

DB Setup something like

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

但是,当页面被提交时,我得到这个标签值的数组,我想我必须检查每个对'标记'表来查看它是否存在与否。

有没有这样做的快捷方式或是否有可能通过tag_id => tag_value?到目前为止,没有一个首选的jQuery库似乎提供:onetwo

回答

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"