将表中的最后添加条目插入另一个表

时间:2017-10-30 22:29:06

标签: php mysql insert

我有3张桌子:A,有位置; B,有参考资料;和C我在哪里做位置和参考之间的关系。每个位置可以有多个参考,但不允许相反。 好的。我的例程: 保存位置和引用之间关系的页面是通过表单中的提交按钮加载的,我这样做: 1.看看这个位置是否存在 如果是,请转到2。 如果不是,则显示错误。 2.查看此参考是否存在。 如果是,请添加此引用与此位置之间的关系。 如果不是,请添加此引用,然后添加此引用与此位置之间的关系。

这是我的基本惯例。我的问题?当引用不存在时,脚本会添加一个新的引用,然后添加新引用和位置之间的关系......但它并不能很好地工作。第一次,脚本只添加引用,但不添加关系...我需要在页面中重新添加才能工作。

我的代码:

<?php
#verify if this position exists at db
if(!empty($_POST['position'])) {
    $query_position = "SELECT `PositionsId`, `PositionsIdentifier` from `positions` WHERE `PositionsId` = '".$_POST['position']."'";
    $select_position = mysqli_query($connect, $query_ref);
    #if yes, proceed to insert the new reference into this position...
    if (mysqli_num_rows($select_position)) {
        #verify if the reference exists at DB
        if(!empty($_POST['ref'])) {
            $query_ref = "SELECT `ReferencesId`, `ReferencesIdentifier` from `references` WHERE `ReferencesIdentifier` = '".$_POST['ref']."'";
            $select_ref = mysqli_query($connect, $query_ref);
            if (mysqli_num_rows($select_ref)) {
                $list_ref = mysqli_fetch_array($select_ref, MYSQLI_ASSOC);
                #verify if this reference exists to this position
                $query_reference = "SELECT `PositionRefId`, `PositionsRef_PosId`, `PositionRef_RefId` FROM `positions_refs` WHERE `PositionsRef_PosId` = '".$id."' AND `PositionsRef_RefId` = '".$list_ref['ReferencesId']."'";
                $select_reference = mysqli_query($connect, $query_reference);
                if (mysqli_num_rows($select_reference)) {
                    echo "This reference exists to this position...";
                }
                else {
                    #insert this reference to this position
                    $query_insert_reference = "INSERT INTO `positions_refs` (`PositionsRef_PosId`, `PositionRef_RefId`) VALUES ('".$id."','".$list_ref['ReferencesId']."')";
                    if (mysqli_query($connect, $query_insert_reference)) {
                        echo "OK.";
                    }
                    else {
                        echo "Error.";
                        echo "<br /><br />";
                        echo mysqli_error($connect);
                    }
                }
            }
            else {
                #if don't exists at db, insert the new reference
                if(!empty($_POST['ref'])) {
                    $query_insert_ref = "INSERT INTO `references`(`ReferencesIdentifier`) VALUES ('".$_POST['ref']."')";
                    if (mysqli_query($connect, $query_insert_ref)) {
                        #select the new reference ID
                        $query_new_ref = "SELECT `ReferencesId`, `ReferencesIdentifier` from `references` WHERE `ReferencesIdentifier` = '".$_POST['ref']." LIMIT 1'";
                        $select_new_ref = mysqli_query($connect, $query_new_ref);
                        if (mysqli_num_rows($select_new_ref)) {
                            $list_new_ref = mysqli_fetch_assoc($select_new_ref, MYSQLI_ASSOC);
                            #insert the new reference to this position
                            $query_insert_reference = "INSERT INTO `positions_ref`(`PositionsRef_PosId`, `PositionRef_RefId`) VALUES ('".$id."','".$list_new_ref['ReferencesId']."')";
                            if (mysqli_query($connect, $query_insert_reference)) {
                                echo "OK.";
                            }
                            else {
                                echo "Error.";
                            }
                        }
                        else {

                        }
                    }
                    else {
                        echo "Error.";
                    }
                }
                else {
                    echo "Error";
                }

            }
        }
        else {
            echo "Error";
        }
    }
}
else {
    echo "Error.";
} 
?>

我不知道另一种方法可以正常工作...... 有没有办法做到这一点:将新的引用添加到数据库中,之后,无需重新加载页面等,将此新引用添加到该位置?

谢谢,

1 个答案:

答案 0 :(得分:0)

如果您想要最后插入的ID,则可以使用mysqli_inserted_id

mysqli_insert_id ($link)

链接:http://php.net/manual/en/mysqli.insert-id.php