Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和oracle在其他表的基础上更新表_Php_Database_Oracle - Fatal编程技术网

使用php和oracle在其他表的基础上更新表

使用php和oracle在其他表的基础上更新表,php,database,oracle,Php,Database,Oracle,我想在根据门牌号从另一个表中逐个搜索记录后,以唯一的结果更新表。 例子: 我有一个名为“投诉点”的表,它有两列“房屋号”和“状态” 另一个名为“投诉表”的表也有两列“门牌号”和“状态”,但有多个相同门牌号的条目。 我想比较表“投诉表”中的每个门牌号和状态,如果任何状态显示为“打开”,则更新第二个表“投诉点”列状态也为“打开”,如果所有状态显示为“关闭”,则更新第一个表“投诉点”列状态“关闭” 我希望使用php和oracle实现这一点 我正在这样做: if (isset($_POST['btnSu

我想在根据门牌号从另一个表中逐个搜索记录后,以唯一的结果更新表。 例子: 我有一个名为“投诉点”的表,它有两列“房屋号”和“状态” 另一个名为“投诉表”的表也有两列“门牌号”和“状态”,但有多个相同门牌号的条目。 我想比较表“投诉表”中的每个门牌号和状态,如果任何状态显示为“打开”,则更新第二个表“投诉点”列状态也为“打开”,如果所有状态显示为“关闭”,则更新第一个表“投诉点”列状态“关闭”

我希望使用php和oracle实现这一点

我正在这样做:

if (isset($_POST['btnSubmit']) == "Save")
{

    $STATUS = $_POST['COMPLAINT_STATUS'];
    $HOUSE_NO = $_POST['COMPLAINT_HOUSE_NO'];
$query ="SELECT STATUS FROM complainttable WHERE HOUSE_NO = '" . $_POST["COMPLAINT_HOUSE_NO"] . "' AND STATUS = 'CLOSED' ";
    $results = ociparse($conn, $query);
    ociexecute($results);
    while($row=oci_fetch_assoc($results)) {

    echo '<option>' . $row['STATUS'] . '</option>';

    if (isset($_POST['STATUS']) == "CLOSED")
    {
    $update = "UPDATE complaintpoint SET STATUS= 'CLOSED' where HOUSE_NO ='" . $_POST["HOUSE_NO"] . "' ";

    $send = oci_parse($conn, $update);
    oci_bind_by_name($send, ':STATUS', $STATUS);
    oci_execute($send);
    }

    else
    {
        echo '<option value="">Complaint is Still Open</option>';   
    }
    }
}
if(isset($\u POST['btnSubmit'])==“Save”)
{
$STATUS=$_POST['COMPLAINT_STATUS'];
$HOUSE\u NO=$\u POST['COMPLAINT\u HOUSE\u NO'];
$query=“从投诉表中选择状态,其中HOUSE_NO=””。$\u POST[“投诉_HOUSE_NO”]。”,状态=“CLOSED”;
$results=ociparse($conn,$query);
执行(结果);
while($row=oci\u fetch\u assoc($results)){
回显'.$row['STATUS'].';
如果(isset($_POST['STATUS'])==“已关闭”)
{
$update=“update complaintpoint SET STATUS='CLOSED'其中HOUSE_NO='”$\u POST[“HOUSE_NO”]。“”;
$send=oci_parse($conn$update);
oci按名称绑定($send,':STATUS',$STATUS);
oci_执行($send);
}
其他的
{
echo“投诉仍在受理中”;
}
}
}
下面的代码将更新

如果投诉表中的任何门牌号打开,则在投诉点表中设置该门牌号的状态=打开

     $query   =  "SELECT * FROM complainttable WHERE STATUS = 'OPEN' ";
     $results = ociparse($conn, $query);
     ociexecute($results);
        while($row=oci_fetch_assoc($results)) 
        {

                $update = "UPDATE complaintpoint SET STATUS= 'OPEN' where HOUSE_NO ='" . $row["HOUSE_NO"] . "' ";
                $send = oci_parse($conn, $update);
                oci_bind_by_name($send, ':STATUS', $STATUS);
                oci_execute($send);
        }

谢谢,阿杰,你的回答只是告诉我投诉表中的门牌号是否打开,然后在投诉点表中设置状态=该门牌号的打开。我的问题是,要比较一个表中的每个门牌号和状态,如果有任何状态显示为“打开”,则更新另一个表的状态“打开”,如果所有状态显示为“关闭在一个表中,更新另一个表状态已关闭。是的,上面的代码服务器用于此目的。如果投诉表中有任何门牌号处于打开状态,则设置状态=投诉点表中该门牌号的打开状态,即有4个门牌号001-打开、001-关闭、002-关闭、002-关闭。第一次查询将发现001仅打开,并将投诉点001中的状态设置为打开请任何人帮助我。