我有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.";
}
?>
我不知道另一种方法可以正常工作...... 有没有办法做到这一点:将新的引用添加到数据库中,之后,无需重新加载页面等,将此新引用添加到该位置?
谢谢,
答案 0 :(得分:0)
如果您想要最后插入的ID,则可以使用mysqli_inserted_id
mysqli_insert_id ($link)