我想为我的新闻部分建立一个简单的标记系统
数据库设置(从上一篇文章中借用的img)
在我的“编辑文章”屏幕上,现在在输入字段中有标签,用户可以删除或键入新的标签。一切都好。
但是当页面被提交并且我得到这个标签值数组时,我想我必须检查每个标签的标签,看看它是否存在。
有没有什么捷径可以做到这一点,或者有没有可能通过tag-id=>tag-value传递?到目前为止,所有首选的jQuery库似乎都没有提供这样的功能:one,two
最佳答案
您也应该始终检查服务器端提交的数据。
如果您使用的是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!
}
上面的代码假设您在提交中得到一个标记id数组。如果你得到了标签名,你只需要改变
."\nLEFT JOIN [tag] t ON t.tag_name = a.tag"