如果已经使用了key,则显示“key has been used”

5kgi1eie  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(427)

我正在尝试创建一个系统,在这个系统中,给用户一个促销代码,然后他们将其输入到表单中。系统检查代码是否已被使用,如果未被使用,则返回“代码已被使用”。如果没有,则返回产品密钥。
到目前为止,我得到它的消息,如果代码是无效的,如果关键是正确的,而不是使用,但我不能为我的生活,找出如何让它回显消息,如果促销代码已经被使用。
“acode”是访问代码。
如果“akey”有效且未使用,则返回“akey”。
这里的数据库设置

<form method="POST">
    Access Code:
    <input type="text" name="acode">
    <br />
    <input type="submit" name="sub">
</form>

    <?php 
        // this will trigger when submit button click
        if(isset($_POST['sub'])){
            $db = new mysqli("","","","");
            // create query
            $query = "SELECT * FROM promo_codes WHERE acodes='".$_POST['acode']."'";

            // execute query
            $sql = $db->query($query);
            // num_rows will count the affected rows base on your sql query. so $n will return a number base on your query
            $n = $sql->num_rows;

            // if $n is > 0 it means there is an existing record that matches base on your query above.

            if($n > 0){
                $coderesult  = "SELECT akeys FROM promo_codes WHERE isclaimed='0' AND acodes='".$_POST['acode']."' LIMIT 1";
                $results = $db->query($coderesult);
                    foreach($results as $row)
                        {
                            if ($n > 0){
                                echo "Your key is ".$row['akeys']."<br>";

                            }

                        }
            } else {
                echo "Incorrect Access Key";
            }
        }

    </body>
    </html>
ilmyapht

ilmyapht1#

您检索错误的 akeys 记录。你需要做一个 fetch_assoc() 在实际从结果对象获取记录之前调用。
更改:

$results = $db->query($coderesult);
                foreach($results as $row)
                    {
                        if ($n > 0){
                            echo "Your key is ".$row['akeys']."<br>";

                        }

                    }

收件人:

$results = $db->query($coderesult);
$row = $results->fetch_assoc();

if(isset($row['akeys'])){
    echo "Your key is ".$row['akeys']."<br>\n";
}
else {
    echo "Code has been used!<br/>\n"
}

相关问题