2014-10-29 51 views
2

這是我的編碼。基本上我想根據($ result2)中定義的用戶設置表單限制。另一件事是日期。例如。今天可以提交3表格,然後明天可以提交另一個3表格,直到用戶對$ result2進行更改爲止。這個代碼的問題是它會忽略日期並且讓用戶提交沒有限制的表單。希望你們能幫助,謝謝限制按日期提交表格

$name = $_POST['name']; 
$address = $_POST['address']; 
$contact = $_POST['contact']; 
$email = $_POST['email']; 
$tbl_name="torder"; 

$sql="INSERT INTO $tbl_name 
(name,address,contact,email,orderdate) 
VALUES('$name','$address','$contact','$email',now())"; 

$tbl2_name="tblfree"; 

$query="SELECT * FROM tblfree"; 

$result2=mysql_query($query); 

$row = mysql_fetch_array(
      mysql_query("SELECT COUNT(*) AS 'submit' FROM torder")); 

if ($row['submit'] > $result2) { 
    echo 'We have reached our Free-T limit';} 
else { 
    $result=mysql_query($sql); 
    echo 'success'; 
} 
+0

如果定義了'$ current'變量?您的示例是要求數據庫計算orderdate字段爲空的實例。 – Baldvin 2014-10-29 08:23:18

+0

你[不應該在新代碼中使用mysql_ *函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到紅色框?瞭解[預準備語句](http://en.wikipedia.org/wiki/Prepared_statement),並使用PDO或MySQLi。 – 2014-10-29 08:23:29

+0

$ current沒有聲明,但orderdate不需要讓用戶鍵入表單,我現在使用()來標記它..因爲我擔心用戶將通過更改日期繼續應用,但是當用戶提交它時,我的phpmyadmin具有2014-10 -29所以現在的問題是我不知道日期的事情就像我在標題中所說的.. – 2014-10-29 08:41:45

回答

1

的問題是,你是一個標值與一個mysql_result,你能看到的是如下情況發生

if ($row['submit'] > $result2) 

相反,你需要獲取的$result2結果和比較,因此它修改爲以下

$result2=mysql_query($query); 
$row2 = mysql_fetch_array($result2); 
$row = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS 'submit' FROM torder where orderdate = {$current}")); 

if ($row['submit'] > $row2['value_you_want_to_compare']) { 
    echo 'We have reached our Free-T limit';} 
else { 
    $result=mysql_query($sql); 
    echo 'success'; 
} 

而且,你的代碼是容易受到SQL注入,來解決這個問題,停止使用mysql_ *功能,因爲他們」再過時的,並開始使用的mysqli或PDO預處理語句

+0

我很高興你幫助我..但它仍然插入成功。 – 2014-10-29 08:30:25

+0

我是新來堆棧。這一個工作,但是當明天用戶不能輸入密鑰時。 $ tbl2_name =「tblfree」; $ query =「SELECT * FROM tblfree」; $ result2 = mysql_query($ query); $ row = mysql_fetch_array(mysql_query(「SELECT COUNT(*)AS'submit'FROM torder」)); if($ row ['submit']> $ result2){ echo'我們已經達到了我們的Free-T限制';} else {0} {result = mysql_query($ sql); 回聲'成功'; } – 2014-10-29 09:09:08

1
$tbl2_name="tblfree"; 
$query="SELECT amount FROM tblfree where id=1"; 
$result2=mysql_fetch_array(mysql_query($query)); 

$row = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS submit FROM torder where orderdate = CURDATE()")); 
if ($row ['submit'] >= $result2['amount']) { 
echo 'We have reached our Free-T limit'; 
echo $result2['amount'];} 
else { 
$tbl_name="torder"; 
$sql="INSERT INTO $tbl_name 
(name,address,contact,email,orderdate)VALUES('$name','$address','$contact','$email',CURDATE())"; 
$result=mysql_query($sql); 
$sql="INSERT INTO $tbl_name (name,address,contact,email,orderdate)VALUES('$name','$address','$contact','$email','$orderdate')"; 
echo 'success'; 

}

+0

@Ali謝謝你的幫助 – 2014-10-30 04:52:55