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