<!DOCTYPE html>
<html>
<head>
<title>Talenquiz2</title>
</head>
<body>
<?php
if (isset($_GET["controleer"]))
{
$vraag = $_GET["vraag"];
$juistantwoord = $_GET["juistantwoord"];
$foutantwoord1 = $_GET["foutantwoord1"];
$foutantwoord2 = $_GET["foutantwoord2"];
$con = mysql_connect("localhost","root","");
mysql_select_db("dbproject", $con);
$result = mysql_query("SELECT * FROM tblquizvragen");
while($row = mysql_fetch_array($result))
{
if ($row['vraag'] == $vraag)
{
if ($row['juistantwoord'] == $juistantwoord)
{
echo "Juist!<br />";
}
else
{
echo "Fout!<br />";
}
}
}
mysql_close($con);
echo "\n<hr />\n";
}
$aantalvragen=1;
$con = mysql_connect("localhost","root","");
mysql_select_db("dbproject", $con);
$result = mysql_query("SELECT * FROM tblquizvragen WHERE id='". $aantalvragen . "';");
$row = mysql_fetch_array($result);
该程序是一个测验,它询问5个问题,其中3个chckbox 1是corect,2个是不正确的。
for ($aantalvragen=1; $aantalvragen<=5; $aantalvragen++)
{
$row = mysql_fetch_array($result);
}
她的我
$vraag = $row['vraag'];
$juistantwoord = $row['juistantwoord'];
$foutantwoord1 = $row['foutantwoord1'];
$foutantwoord2 = $row['foutantwoord2'];
mysql_close($con);
?>
<form>
它不会显示我浏览器中行的值,它只显示一个打开的文本和一个打开的复选框。
<input type="text" name="vraag" value="<?php echo $vraag; ?>" /><br />
<input type="checkbox" name="juistantwoord" value="<?php echo $juistantwoord; ?>" /><br />
<input type="checkbox" name="foutantwoord1" value="<?php echo $foutantwoord1; ?>" /><br />
<input type="checkbox" name="foutantwoord2" value="<?php echo $foutantwoord2; ?>" /><br />
<input type="submit" value="Controleer je antwoord" name="controleer" />
</form>
</body>
</html>
答案 0 :(得分:1)
从db
获取代码不正确for(...) {
$row = mysql_fetch_array(...);
}
你只需循环5行结果,无论可能有多少行,并将行数组分配给$ row ...但是对于每一行都没有使用它们。因此,您最终会破坏第一个n-1
行并退出循环,只保存了行n
。
如果您对预期的数据行数有误,那么您的5项循环可能只有4项结果集要处理,最后一行$row1
值将是boolean FALSE,当没有更多数据时,msyql_fetch返回。
尝试这样的事情:
while($row = mysql_fetch_assoc($result)) {
echo ..... your stuff here ...
}
更可靠,不依赖于已知的行数可用,并且如果根本没有数据则不会输出任何内容。