您好我的情况是,在特定日期,我的用户可以更新数据,但仅将其更新限制为仅3次。到目前为止,这是我的代码。
if(date('m','d' == '04','01')){
$sql="update tbl_enroll fields,fields,fields where student_id='".$_POST['student_id'] . "'";
$pow = mysql_query($sql) or die (mysql_error());
}
有关如何限制更新的任何想法?我的数据库结构中是否需要更改某些内容?我将不胜感激。
答案 0 :(得分:4)
向表中添加计数列,并在每次用户更新时递增。如果计数为3则禁止操作并显示错误消息。
答案 1 :(得分:3)
在@TigOldBitties建议的情况下向表中添加一个count列,并在WHERE子句AND updateCount <= 3
的末尾添加
-
您确定if(date('m','d' == '04','01')){
是否正确?我认为它应该是if(date('m','d') == '04','01'){
-
甚至if(date('m','d') == '04','01'){
也不是正确的,你在这里尝试做什么?
答案 2 :(得分:2)
将'counter'添加到tbl_enroll。像这样:
ALTER tbl_enroll ADD COLUMN counter SMALLINT UNSIGNED NOT NULL;
然后,您的代码应该是这样的:
// check how many times has this user edited:
$sql = 'SELECT counter FROM tbl_enroll WHERE student_id=123';
$pow = mysql_query($sql) or die (mysql_eror());
$pow = mysql_fetch_assoc($pow);
$allowed = true;
if ($pow['counter'] >= 3) $allowed = false;
if (date('m') == '04' && date('d') == '01' && $allowed) { // allow edit only on april 1
$sql = "UPDATE tbl_enroll SET something='something',other_field='',counter=(counter+1) WHERE student_id=123"; // this is just an example, please focus on "counter=(counter+1)"
$pow = mysql_query($sql) or die (mysql_error());
}