问题表如下:
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(6) | NO | PRI | NULL | auto_increment |
| question | varchar(200) | NO | | NULL | |
| correct | varchar(80) | NO | | NULL | |
| wrong1 | varchar(80) | NO | | NULL | |
| wrong2 | varchar(80) | NO | | NULL | |
| wrong3 | varchar(80) | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
一个问题的打印示例(问题)输出:
Array
(
[0] => Array
(
[id] => 1
[question] => What is the correct pipeline pressure for Nitrous Oxide (<abbr title="Nitrous Oxide.">N<span class="chem-notation">2</span>O</abbr>)?
[answers] => Array
(
[0] => Array
(
[correct] => 1
[answer] => 60<abbr title="Pounds per square inch">PSI</abbr>.
)
[1] => Array
(
[correct] => 0
[answer] => 45<abbr title="Pounds per square inch">PSI</abbr>.
)
[2] => Array
(
[correct] => 0
[answer] => 30<abbr title="Pounds per square inch">PSI</abbr>.
)
[3] => Array
(
[correct] => 0
[answer] => 15<abbr title="Pounds per square inch">PSI</abbr>.
)
)
)
$results = $results2 = mysql_query("
SELECT questions.id AS id,
questions.question AS q,
questions.correct AS c,
questions.wrong1 AS w1,
questions.wrong2 AS w2,
questions.wrong3 AS w3
FROM questions
ORDER BY questions.id
LIMIT 40")
or die("Oops, unable to access database at this time." . mysql_error());
while ($row = mysql_fetch_array($results)) {
if (!isset($i)) {
$i = 0;
}
else {
$i = $i;
}
$answers[$i] = array(
0=>array (correct => 1, answer => $row['c']),
1=>array (correct => 0, answer => $row['w1']),
2=>array (correct => 0, answer => $row['w2']),
3=>array (correct => 0, answer => $row['w3'])
);
$questions[$i] = array(id=>$row['id'],
question=>$row['q'],
answers=>$answers[$i]);
$correctAnswer[$i] = array($row['c']);
$i++;
}
要显示问题/答案,请执行以下操作:
<?php
require_once 'incs/dbcnx.php';
require_once 'incs/questions.php';
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Multiple choice questions for ODP students.</title>
<link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
</head>
<body>
<?php
$submitted = $_POST['submit'];
$quesions = $_SESSION['questions'];
$correctAnswers = $_SESSION['correctAnswer'];
if (isset($submitted) && $submitted == "1") {
// display the results.
echo "<form>";
for ($i=0;$i<sizeof($questions);$i++) {
echo "\t\t<fieldset>\n\n";
echo "\t\t<label>\n\t\t\t<span class=\"qNum\">Q" . $questions[$i][id] . ": </span>\n\t\t\t";
echo $questions[$i][question] . "\n\t\t</label>\n";
$submittedName = (string) "question" . $questions[$i][id];
for ($c=0;$c<sizeof($questions[$i][answers]);$c++) {
if ($_POST["$submittedName"] == $c) {
if ($questions[$c][answers][$c][correct] == 1) {
echo "\n\t\t<span class=\"correct\"><span class=\"hint\">â</span>";
echo "<input checked type=\"radio\" name=\"question" . $questions[$i][id] . "\"";
echo " value=\"$c\" />";
}
else {
echo "\n\t\t<span class=\"submitted\"><span class=\"hint\">â</span>";
echo "<input type=\"radio\" name=\"question" . $questions[$i][id] . "\"";
echo " value=\"$c\" />";
}
}
elseif ($questions[$c][answers][$c][correct] == 1) {
echo "\n\t\t<span class=\"thisOne\">";
echo "<input type=\"radio\" name=\"question" . $questions[$i][id] . "\"";
echo " value=\"$c\" />";
}
else {
echo "\n\t\t<span class=\"optionLine\">";
echo "<input disabled type=\"radio\" name=\"question" . $questions[$i][id] . "\"";
echo " value=\"$c\" />";
}
echo $questions[$i][answers][$c][answer] . "</span>";
}
echo "\n\n\t\t</fieldset>\n\n";
}
echo "</form>";
}
else {
// show the form
?>
<form enctype="form/multipart" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php
for ($i=0;$i<sizeof($questions);$i++) {
echo "\t\t<fieldset>\n\n";
echo "\t\t<label>\n\t\t\t<span class=\"qNum\">Q" . $questions[$i][id] . ": </span>\n\t\t\t";
echo $questions[$i][question] . "\n\t\t</label>\n";
for ($c=0;$c<sizeof($questions[$i][answers]);$c++) {
echo "\n\t\t<span class=\"optionLine\">";
echo "<input type=\"radio\" name=\"question" . $questions[$i][id] . "\"";
echo " value=\"$c\" />";
echo $questions[$i][answers][$c][answer] . "</span>";
}
echo "\n\n\t\t</fieldset>\n\n";
}
?>
<fieldset>
<input type="reset" value="clear" />
<input type="submit" value="submit" />
<input type="hidden" name="submit" value="1" />
</fieldset>
</form>
<?php
}
?>
<div id="variables">
</div>
</body>
</html>
$questions[$i][answers][$c][correct]
确定答案是真('1')还是假('2')。但我想我在某个地方迷路了。如果有人能提供任何帮助,欢迎提出建议。
任何人都会很友好地编辑代码示例,直到必要的部分(有太多了,我只是不知道必要的信息是什么)。
谢谢