電子書籍の厳選無料作品が豊富!

こんにちは。今回、オプションメニューのフォームを作り、選択したオプションごとにデータを表示させるというものを作っているのですが、オプションを選択し、実行すると、
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in~
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in~
と表示されてしまいます。
フォームを用いずに単にデータを表示させるだけならできたのですが・・・
フォームとPHPを連携させる場合、php.ini内のregister_globalsをOnにする必要があるとのことだったので、Onにはしているのですが・・・
問題はほかにあるのでしょうか?よろしくお願いします。

A 回答 (2件)

期待したSQLをmysqlクライアント等で実行すると正常に動作しますね?



だとすればエラーは、mysql_fetch_array()、mysql_free_result()に与えている引数が、正しい値ではないからです。

正しくmysql_query()の返り値がこれらの関数に渡っていますか?正しく渡っていれば、mysql_queryの返り値を$rsとして、var_dump($rs);で表示させてみてください。falseあたりが入っていませんか?だとしたらmysql_query()でエラーが出ているので、mysql_error()関数をmysql_queryの下に追加してエラーメッセージを取得、表示させて内容を確認して下さい。

もしかしたらそもそもDBとの接続自体にエラーがあるかも知れません。とにかくこの要領で、どこからおかしくなっているのかを確認しましょう。

なお、通常であればmysql_free_result()は不要です。スクリプト終了時に自動的にメモリは開放されます。
    • good
    • 0
この回答へのお礼

ありがとうございます!
DBとの接続にエラーがあることがわかり、問題は解決しました!
ご丁寧に説明してくださって本当に感謝しています。これからエラー発見の際に手順を参考にさせていただきます!

お礼日時:2005/06/28 23:47

SQLの実行直前に、SQL文をprint関数で表示させてみましょう。

期待したSQLが出来ていますか?出来ていなければ、どこで期待と違ってしまったのかを確かめていきましょう

この回答への補足

ご回答ありがとうございます。
print関数で表示させてみたところ、期待したSQLが出来ていました。
そのほかは質問項目に記載したとおり、警告が出ているという状態でした。

補足日時:2005/06/28 22:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!