猜单词PHP累积奖金

时间:2018-07-01 19:05:45

标签: php html sql pdo

因此,我为本地广播电台制作了此应用程序,该广播电台基本上是带有累积奖金的猜字游戏。当用户进入页面时,$ bericht需要显示累积奖金有多高。每次有人错过单词时,头奖需要增加5,而$ bericht需要更新,如果用户猜对了,用户将赢得大奖,这将显示他们在$ bericht中赢了多少。但是每次我回答错时,它仍然说我猜对了。这需要使用PDO和PHP来完成。

这是我的PHP:

<?php
    require_once "manager.php";

    $manager = new funtionHandler();

    $database = $manager->getBCWaarde();

    $bcDatabase = $database->bc;

    $message= "De pot ligt nu op&nbsp;" . $bcDatabase . "BC!";

    if ($_POST) {
        $checkAnswer= $manager->getAntwoordByInput($_POST["antwoord"]);

        $correctAnswer= isset($checkAnswer);

        if ($correctAnswer) {
            $message= "Het antwoord is goed!&nbsp; Jij wint&nbsp;" . $bcDatabase . "BC!";

            $bcCount = 0;

            $manager->updateBCWaarde($bcCount);
        }else{
            $bcCount = $bcDatabase += 5;

            $message= "Het antwoord is fout!&nbsp; De pot ligt nu op&nbsp;" . $bcCount . "BC!";

            $manager->updateBCWaarde($bcCount);
        }
    }
?>

这是我的PHP Functionmanager:

<?php

require_once "connection.php";

class funtionHandler{
    public function getAntwoordByInput($aInput) {            
        global $conn;

        $statement = $conn->prepare("SELECT * FROM hetgeluid WHERE antwoord LIKE '?';");

        $statement->bindValue(1, $aInput);

        $statement->execute();

        return $statement->fetchObject();
    }

    public function getBCWaarde() {            
        global $conn;

        $statement = $conn->prepare("SELECT bc FROM hetgeluid");

        $statement->execute();

        return $statement->fetchObject();
    }

    public function updateBCWaarde($bcWaarde) {            
        global $conn;

        $statement = $conn->prepare("UPDATE hetgeluid SET bc = ? WHERE id = 1");

        $statement->bindValue(1, $bcWaarde);

        $statement->execute();
    }
}

?>

这是我的HTML:

  <form method="post" action="">
     <textarea required type="text" style="height:100px; width:100%;" class="customField" cols="40" rows="5" style="resize: none;" name="antwoord"></textarea><br /><br />
     <input type="submit" class="customSuccessButton" value="Verstuur"/>                                  
   </form>
   <br />
   <?php echo $message; ?>

1 个答案:

答案 0 :(得分:1)

检查答案是否正确的方法似乎是这里的问题。

$checkAntwoord = $manager->getAntwoordByInput($_POST["antwoord"]);

getAntwoordByInput方法返回$statement->fetchObject()的结果,该结果返回下一行作为对象,如果没有则返回false

$goedAntwoord = isset($checkAntwoord);

isset函数检查变量是否存在而不是null

变量$checkAntwoord始终存在。如果答案正确,则其类型为object,否则为booleanfalse)。无论哪种方式,它都不是null。因此,您的条件将永远为真。

if ($goedAntwoord) {

您可以改为使用empty函数。例如:

$goedAntwoord = !empty($checkAntwoord);
if ($goedAntwoord) {