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クエリに不足しているものがあるようです。DB内の実際のテーブルのフィールドを一致させてください(小文字と大文字も一致させてください)。

また` is not supported hence remove、すべてのフィールドとテーブル名から時々。おそらくそれはあなたの問題を解決するでしょう。

于 2012-08-24T08:43:55.700 に答える
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_fetch_arrayは待機しているものが含まれていません。

于 2012-08-24T08:36:40.860 に答える