私は一種の「クイズ」を作っています。ユーザーは質問を受け、3 つの回答から選択できます。これが私のコードです:
// query
$result = mysql_query("SELECT * FROM `db_game` LEFT JOIN `db_game_printers` ON (db_game.printerId = db_game_printers.id) ORDER BY RAND() LIMIT 1") or die(mysql_error());
while($row = mysql_fetch_array($result)) {
// explode answers
$row['printerQuestion'] = trim($row['printerQuestion']);
$question = explode(",", $row['printerQuestion']);
$printerQuestion = $row['title'];
$printerAnswer = $row['printerAnswer'];
// check answer
$answer = $row['printerAnswer'];
if (isset($_GET['answer'])) {
$answerUser = $_GET['answer'];
if ($answerUser == $answer) {
$correct = true;
} else {
$false = true;
}
}
期待どおりに動作します。ユーザーが回答をクリックして質問に答えると、次の質問が表示されます。また、彼らが実際に正解したか不正解だったかを示したいと思います! 私はこのコードを書きました:
<div id="wrapper">
<div id="question">
<h1><?= $printerQuestion; ?></h1>
</div><!-- /question -->
<ul id="answers">
<li style="text-align:left;"><a href="index.php?answer=<?=$question[0];?>"><button class="punch"><?=$question[0];?></button></a></li>
<li style="text-align:center;"><a href="index.php?answer=<?=$question[1];?>"><button class="punch"><?=$question[1];?></button></a></li>
<li style="text-align:right;"><a href="index.php?answer=<?=$question[2];?>"><button class="punch"><?=$question[2];?></button></a></li>
</ul>
<div class="clear" style="margin-bottom:50px;"></div>
<?php
$prev_printerQuestion = $printerQuestion;
$prev_printerAnswer = $printerAnswer;
} // end while loop
?>
<?php
if (isset($_GET['answer'])) {
if ($correct) {
echo "Correct! The ".$prev_printerQuestion." uses the ".$prev_printerAnswer."";
}
else if ($false) {
echo "Not correct. ".$prev_printerQuestion." = ".$prev_printerAnswer."" ;
}
}
?>
</div><!-- /wrapper -->
答えが正しいかどうかのチェックでは、現在のデータが使用されます。前の質問からではありません。別の変数と while ループの外側 (および内側) に値を配置しようとしましたが、違いはありませんでした。
誰でも思いつきましたか?