我在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。我能错过什么?
答案 0 :(得分:0)
如果你不打电话
session_start();
会话不起作用!
我的想法是
if($_SESSION['formId']=="submit")
{
//your code
}
else
{
// your code
$_SESSION['formId']="submit";
}