其他语句不在PHP条件下执行

时间:2014-01-09 19:35:51

标签: php sql forms

我在PHP函数中有一个if / else条件来设置提交表单的状态。如果表单已存在,则表单ID将存储为会话变量,并告知函数要更新哪个表单。如果表单是全新的,则表单ID不作为会话变量存在,并且ELSE语句应该执行。编写代码以在新表单的情况下检索数据库中的最后一条记录。

//Set the form status
if(isset($_SESSION['formId']))
{
//Update the status of the EXISTING record
$setStat = $con->prepare("UPDATE table SET Status = :status WHERE
    formID = :formid");
$data = array('status'=>$status,'formid'=>$_SESSION['formId']);
$setStat -> execute($data);
}

else
{
//Update the status of the NEWLY CREATED record
$id = $con->prepare("SELECT TOP 1 formID FROM table ORDER BY formID 
    DESC");
$id->execute();
$row = $id->fetch(PDO::FETCH_ASSOC);
$formId = $row['formID'];

$setStatNew = $con->prepare("UPDATE table SET Status = :status WHERE 
    formID = :formid");
$data2 = array('status'=>$status,'formid'=>$formId);
$setStatNew -> execute($data2);
}

在写入新记录之后调用该函数,并且我已经能够确认,在新表单的情况下,未设置表单id会话变量以及从中检索最新记录的查询数据库工作。我可以成功地回显出最新的表单ID。但是,ELSE语句永远不会执行。提交新表单时,状态仍为NULL。我能错过什么?

1 个答案:

答案 0 :(得分:0)

如果你不打电话

session_start();

会话不起作用!

我的想法是

if($_SESSION['formId']=="submit")
{
    //your code
}
else
{
     // your code
    $_SESSION['formId']="submit";
}