2016-08-12 58 views
0

問題是我的變量$target_time不能正常工作。表格提交後變量不變

if (isset($_POST['bid'])) { 
    $stmt10->execute(array(
    'user_id' => $usid, 
    'user' => $login, 
    'bid' => $_SESSION['bid'] 
)); 
} 

$target_time = strtotime('+15 minutes', strtotime($stmt14)); 
$current_time = time(); 

echo $current_time . ' >= ' . $target_time; 

$seconds_left = $target_time - $current_time; 
$minutes_left = floor($seconds_left/60); 
$seconds_left -= $minutes_left * 60; 
$seconds_left = floor($seconds_left); 

if ($current_time >= $target_time) { 
    $stmt9->execute(); 
    $r1 = $stmt9->fetch(PDO::FETCH_ASSOC); 
    $stmt12->execute();  
    $r2 = $stmt12->fetch(PDO::FETCH_ASSOC); 
    $stmt11->execute(array(
      'win' => $r1['bid'], 
      'user_id' => $r2['user_id'] 
)); 
    $stmt13->execute(); // Clears bid table 
} 

當用戶按下提交按鈕時,元件值,其名稱是bidif (isset($_POST['bid'])) {執行但$target_time不大於$current_time更多,它只是簡單執行的,而不是添加15分鐘,以的形式提交1470996804 >= 900日期。因爲它提供1470996804 >= 900if ($current_time >= $target_time) {條件爲真)的結果,它在提交表單後立即執行,並且執行$stmt13->execute();,因此它將刪除所有表內容。在提交表單時我應該怎麼做,$target_time將從數據庫中獲取,並且if ($current_time >= $target_time) {條件不會立即成立,而是在按下提交按鈕15分鐘後才執行?

+0

我很努力地理解你在問什麼。您希望在用戶提交表單15分鐘後執行查詢嗎? – BadHorsie

+0

是的,這正是我想要的。 – Luke

+0

我沒有看到任何錯誤,只是在用戶提交表單之後執行,而不是延遲15分鐘。 – Luke

回答

0

我已經自己解決了。是的,$stmt14是一個PDO語句,它在執行前被提取。剛剛使用這個條件:if ($current_time >= $target_time && $stmt2 >= 1) {其中$stmt2是PDO計數語句,所以它確保有1行,然後它抓取最後插入的行的值:)