2013-10-01 115 views
0

我目前正在處理腳本。當用戶發佈內容並且時間差小於5分鐘時,用戶無法發帖。如果超過5分鐘,他可以發一個帖子。我認爲這段代碼可以工作,但是我得到了一個mysql_fetch_array錯誤。我的代碼有什麼問題?DATEDIFF和NOW()mysql_fetch_array錯誤

if ($db_found) 
{ 
$check="SELECT * DATEDIFF(MINUTE, send_time, CURRENT_TIMESTAMP) FROM bloopp WHERE email = '$email' ORDER BY id DESC LIMIT 1"; 
$res = mysql_query($check); 
$data = mysql_fetch_array($res, MYSQLI_NUM); 
    if($data[0] < 5) 
    { 
    echo "You posted not so long ago.<br/>"; 
    } 
    else 
    { 
    $sql="INSERT INTO bloopp (bloopp, browser, medium, send_time, email) VALUES ('$bloopp', '$browser', 'mobile', NOW(), '$email')"; 
    $result = mysql_query($sql); 
    if($result) 
    { 
    header('Location: index.php'); 
    } 
    else 
    { 
     echo "Something has gone wrong. We’re sorry."; 
    } 
    } 
} 
else 
{ 
echo "ERROR"; 
} 

mysql_close(); 
?> 
+1

只是一個建議,不要使用mysql_ *函數。使用mysqli或PDO模塊。選中此項:http://php.net/manual/en/function.mysql-query.php –

+0

如果您希望在執行數據庫操作時獲取有關錯誤的詳細信息,請使用mysql_error()函數。 另請注意,您使用的功能已被棄用,並將在未來的PHP版本中刪除。你可以在這裏閱讀更多:http://www.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated。 –

回答

1

你後馬上用,失蹤*

SELECT * DATEDIFF(MINUTE, send_time, CURRENT_TIMESTAMP) 

變化

SELECT * ,DATEDIFF(MINUTE, send_time, CURRENT_TIMESTAMP) AS `diff` 

其更好地給當你在查詢上自定義列別名

+0

太棒了!這已經起作用了,但是我怎麼做if語句呢?我如何參考'差異'?像「$差異」? –

+1

@ bloopp-它可以通過使用'mysql_fetch_array($ res,MYSQL_ASSOC)'來使用'$ data ['diff']';'參考這裏http://php.net/manual/en/function.mysql-fetch- array.php –

+0

完美地工作。雖然我不得不改變別的東西(DATEDIFF必須是TIMESTAMPDIFF)! –

0
SELECT DATEDIFF(MINUTE, send_time, CURRENT_TIMESTAMP) 

刪除*

或保留它,但後面加逗號。