繁体   English   中英

使用mysql_fetch_array的php while循环错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM