我有一个数据库,其中包含一些用于保留图像标签的表格。我将图像上传到服务器时,有一个输入表单,其中包含一些隐藏字段以及一个输入字段,允许用户添加逗号分隔标记。一切正常,但target url table
没有收到数据。我没有收到错误,我想这是因为我的数据库插入查询必须搞砸了。假设是因为我试图从其他表中获取数据并在查询中使用它进入target url table
在这里,我很确定在我的查询中,而不是创建代码墙,所以我将从那开始。
function addTags($tag_type_id, $tag_target_name, $tag_target_url, $tags){
/*** explode the tag string ***/
$tag_array = explode(',', $tags);
/*** loop of the tags array ***/
foreach( $tag_array as $tag_name )
{
/*** insert tag into tags table ***/
$tag_name = strtolower(trim($tag_name));
$databaseQuery = "INSERT IGNORE INTO tags (tag_name ) VALUES ('$tag_name')";
//Execute database query
executeDatabase($databaseQuery);
/*** get the tag ID from the db ***/
$databaseQuery = "SELECT tag_id FROM tags WHERE tag_name='$tag_name'";
$result = executeDatabase($databaseQuery);
$tag_id = mysqli_num_rows($result);
/*** now insert the target ***/
$databaseQuery = "INSERT INTO tag_targets
(tag_id, tag_target_name, tag_target_url, tag_type_id)
VALUES
('$tag_id', '$tag_target_name', '$tag_target_url', '$tag_type_id')";
executeDatabase($databaseQuery);
}
}
所以这个功能应该在
中tag_type_id
tag_target_name
tags_target_url
tags
然后将tag_name
插入表tags
然后检索与tag_id
一起使用的相应tag_name
,将其与相应的数据一起添加到tag_targets
表格。
所有内容都正确地插入到每个表中,但没有任何内容插入到tag_targets
tag_target_name当前设置为采用上传图像的文件名。只是为了解决任何困惑。
为什么此查询无法正常工作的任何想法?或者,为了排除故障,还有更好的方法吗?
添加了更多内容以帮助解释我的情况,
js收集表单输入
//Create an empty container
var path = "users/" + $("#username").val() + "/";
var $elems = $();
//Cycle thru the files
$.each(data.files, function(idx, file) {
//Create an input with attrs
var $inputType = $("<input/>", {
'type': 'hidden',
'value': '11',
'id': 'tag_type_id',
'name': 'tag_type_id'
});
var $inputName = $("<input/>", {
'type': 'hidden',
'value': file["name"],
'id': 'tag_target_name',
'name': 'tag_target_name'
});
var $inputURL = $("<input/>", {
'type': 'hidden',
'value': path + file["name"],
'id': 'tag_target_url',
'name': 'tag_target_url'
});
var $inputTags = $("<input/>", {
'type': 'text',
'placeholder': 'Separate tags with commas',
'id': 'tags',
'name': 'tags'
});
这是我收集信息的表格。将图像添加到放置区后,图像以缩略图显示,其中一个未隐藏的输入字段添加了标记。 正确地将标记添加到数据库但未填充target_url表。
<div class="module">
<div class="moduleTitle">Add Tags to Images</div>
<form onSubmit="addTags();return false;" id="tagAddForm">
<ul>
<!-- Ths is where the tag inputs will appear -->
</ul>
<input type="submit" name="login" value="Add New Tag" class="submit" id="login"/>
</form>
</div>
有三个表,
tags
tag_id(auto increment) | tag_name(actual tag name)
tag_targets
tag_target_id(auto increment) | tag_id(from tags table) | tag_target_name(name of file) | tag_target_url(path to file) | tag_type_id(from tag_types table)
tag_types
tag_type_id(auto increment) | tag_type_name(tag class "image")