0

我看不到:

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() 并且没有任何输出,所以我假设我的查询是正确的?

非常感谢

4

4 回答 4

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>";
于 2012-08-24T08:36:07.583 回答
0

听起来您的查询无效,因此问题变量不包含mysql_fetch_array正在等待的内容。

于 2012-08-24T08:36:40.860 回答
0

不要使用 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
}
于 2012-08-24T08:49:59.323 回答
0

您的 mysql 查询中似乎缺少某些内容,请匹配数据库中实际表中的字段(也匹配小写和大写)。

有时也` is not supported hence remove来自所有字段和表名。可能它会解决你的问题。

于 2012-08-24T08:43:55.700 回答