我看不到:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
任何人都可以提供帮助,因为我的代码看起来很明显:
<?php
//retreive questions from database and put into question box
$query = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`";
$question = mysql_query($query);
while($row = mysql_fetch_array($question)){
$id = $row['QuestionId'];
$question = $row['Question'];
$opt1 = $row['Opt1'];
$opt2 = $row['Opt2'];
$opt3 = $row['Opt3'];
$opt4 = $row['Opt4'];
$answer = $row["Answer"];
?>
<div id="ContainerQuestion">
<span class="Question">Question <?php echo $id; ?>. <?php echo $question; ?></span>
<p><input type=radio name='q<?php echo $id; ?>' value="<?php echo $opt1; ?>"> <?php echo $opt1; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' value="<?php echo $opt2; ?>"> <?php echo $opt2; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' value="<?php echo $opt3; ?>"> <?php echo $opt3; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' value="<?php echo $opt4; ?>"> <?php echo $opt4; ?> </p>
</div>
<?php
}
尝试了mysql_error()并且没有输出任何内容,所以我假设我的查询是正确的?
非常感谢答案 0 :(得分:2)
您根本不会在代码中的任何位置生成 mysql连接。您确定存在与数据库的有效连接吗?
其次,交换PDO是比较明智的,这比旧mysql_*
函数更安全,更有光泽,更好。
话虽如此,您需要使用以下内容来使用oder函数进行连接:
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
编辑:
您可以添加以下代码部分并让我知道输出吗?
$query = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`";
$question = mysql_query($query);
$num_rows = mysql_num_rows($question);
echo "$num_rows Rows<br>";
答案 1 :(得分:0)
听起来您的查询无效,因此问题变量不包含mysql_fetch_array
正在等待的内容。
答案 2 :(得分:0)
您的mysql查询中似乎缺少某些内容,请匹配数据库中实际表中的字段(也匹配小写和大写)。
有时候来自所有字段和表名的` is not supported hence remove
。
可能它会解决你的问题。
答案 3 :(得分:0)
不要使用mysql_ *函数。
$ question = mysql_query($ query);
如果查询失败会怎样?或者如果mysql服务器返回0行? 从手册:&#34;对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()返回成功时的资源,或者出错时返回FALSE。&#34;
if ( !$question ) {
//Query is failed.
echo mysql_error(), $query; //for developer use. if error happens - you will see what happens
exit(); //or something else you want
}
if ($question && mysql_num_rows($question) > 0) {
while($row = mysql_fetch_array($question)){
.....
}
} else {
// mysql server return 0 rows
}