从MYSQL表中检索数据以与其他数据一起插入另一个表中

时间:2015-10-30 03:59:17

标签: php mysql

我有一个数据库,其中包含一些用于保留图像标签的表格。我将图像上传到服务器时,有一个输入表单,其中包含一些隐藏字段以及一个输入字段,允许用户添加逗号分隔标记。一切正常,但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")

0 个答案:

没有答案