2014-01-09 4 views
0

У меня есть условие if/else в функции PHP, которая задает статус отправленной формы. Если форма уже существует, то идентификатор формы хранится как переменная сеанса и указывает функции, которая должна обновляться. Если форма является совершенно новой, то идентификатор формы не существует как переменная сеанса и оператор ELSE должен выполняться. Код записывается для получения последней записи в базе данных в случае новой формы.Операция Else не выполняется в PHP-состоянии

//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); 
} 

Эта функция вызывается после того, как новая запись будет написана, и я был в состоянии подтвердить, что в случае новой формы, переменный сеанса форма идентификатора не установлена ​​и что запрос для получения самая новая запись из базы данных. Я могу успешно повторить новый идентификатор формы. Однако инструкция ELSE не выполняется. При отправке новой формы статус остается NULL. Что я могу пропустить?

+0

print_r ($ _ SESSION); наверху, чтобы увидеть, что на самом деле есть в нем. –

+0

Используйте 'vardump ($ _ SESSION)' для проверки переменной '$ _SESSION' и выясните, что происходит – sjagr

+0

Я думаю, что он всегда устанавливает $ _SESSION ['formId']. поскольку вы сохранили его в сеансе. –

ответ

0

если вы не звоните

session_start(); 

сессия не работает!

моя идея

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

[Как указано выше] (http://stackoverflow.com/questions/21029504/else-statement-not-executing-in-php-condition#comment31612679_21029504) --- Я ** никогда не отправляю ответ, прежде чем я получу знать всю картину. Назовите это «опытом» ;-) –

Смежные вопросы