限制按钮的点击次数

Pra*_*ood -3 html javascript php mysql jquery

我的网页上有两个按钮(接受并拒绝).我想限制接受按钮的点击次数.我希望在24小时内点击"接受"按钮的次数为20次.24小时结束后,用户可再次单击该按钮20次.我正在使用MySQL数据库和PHP.

Dip*_*iya 6

基本上我对PHP一无所知,但我可以建议实现结果可能需要的方式.

您需要一个包含某些列的表,如下所示.

  1. UserId int PK
  2. FirstClickDateTime DateTime
  3. TotalClicks int

创建一个执行操作的存储过程,包括根据条件进行插入,更新,如下所示.

    CREATE PROCEDURE sp_ManageButtonClickByUserId
      @UserId INT,
      @IsClick BIT = 0
    AS BEGIN

-- Lets consider your table name is ManageButtonCLick with columns including 
-- 1.UserId int
-- 2.FirstClickDateTime DateTime
-- 3.TotalClicks int

IF ISNULL(@IsClick,0) <> 0 -- Determine IsClick is true when pass from code
BEGIN
    Declare @TotalClick AS INT
    SET @TotalClick = (SELECT TotalClick FROM ManageButtonCLick WHERE UserID = @UserId);
    SET @TotalClick = ISNULL(@TotalClick, 0) + 1;


    If EXISTS(SELECT 1 FROM ManageButtonCLick WHERE UserID = @UserId) -- If user exists than update record
    BEGIN

        /* Determine the 24 is completed or not for specific user */
        Declare @IsHoursCompleted AS BIT = 0; -- Indecates false
        Declare @TotalHoursCompleted AS INT = 0;

        SET @TotalHoursCompleted = (SELECT DATEDIFF(HOUR, FirstClickDateTime, GETDATE()) FROM ManageButtonCLick WHERE UserID = @UserId);
        SET @IsHoursCompleted = (SELECT CASE WHEN ISNULL(@TotalHoursCompleted,0) >= 24 THEN 1 ELSE 0 END);

        IF (ISNULL(@IsHoursCompleted,0) <> 0)
        BEGIN
            UPDATE ManageButtonCLick
            SET FirstClickDateTime = GETDATE(), TotalClicks = 1
            WHERE UserID = @UserId
        END
        ELSE
        BEGIN
            UPDATE ManageButtonCLick
            SET TotalClicks = @TotalClick
            WHERE UserID = @UserId
        END
    END
    ELSE -- if user not exists than insert that user detail for button click
    BEGIN
        INSERT INTO ManageButtonCLick (UserId, FirstClickDateTime, TotalClicks)
        VALUES (@UserId, GETDATE(), @TotalClick)
    END
END
END 
Run Code Online (Sandbox Code Playgroud)

现在这一次来管理来自代码的点击

当用户加载此页面时(此时有"接受"按钮,您需要确定用户在24小时内完成了总点击次数.对于此任务,您必须创建一个返回true或false的函数).

如果为特定用户启用按钮而不是执行以下操作...

当用户单击"接受"按钮时,您需要从代码中调用该过程以及所需的参数.

此用户禁用其他按钮.