我想为我的新闻栏目构建一个简单的标记系统
数据库设置(img借鉴了之前的帖子)
在我的“编辑文章”屏幕上,现在有一些标记位于输入字段中,用户可以删除或键入新标记。一切都好。
但是当页面被提交并且我得到了这个标记值数组时,我想我必须针对'Tag'表检查每个标记值是否存在。
是否有任何快捷方式可以执行此操作,还是以某种方式可以通过tag_id => tag_value?到目前为止,没有一个首选的jQuery库似乎提供:one,two
答案 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"