[英]php while loop error using mysql_fetch_array
我看不到:
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()并且没有输出任何内容所以我假设我的查询是正确的?
非常感谢
你似乎并不让 MySQL连接的任何地方在你的代码在所有。 您确定存在与数据库的有效连接吗?
其次,交换到PDO是比较明智的, PDO比旧的mysql_*
函数更安全,更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>";
听起来您的查询无效,因此问题变量不包含mysql_fetch_array
正在等待的内容。
您的mysql查询中似乎缺少某些内容,请匹配数据库中实际表中的字段(也匹配小写和大写)。
有时` is not supported hence remove
从所有字段和表名中` is not supported hence remove
。 可能它会解决你的问题。
不要使用mysql_ *函数。
$ question = mysql_query($ query);
如果查询失败会发生什么? 或者如果mysql服务器返回0行? 从手册:“对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()返回成功时的资源,或者出错时返回FALSE。”
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.