• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<大至急!>ご教授願います。)

MySQLで作ったお祭りのデータベースからデータを検索し、お祭りの名前と開催地を表示する方法は?

このQ&Aのポイント
  • MySQLで作成したお祭りのデータベースから、検索結果としてお祭りの名前と開催地を表示する方法を教えてください。
  • PHPのプログラムからMySQLのデータベースを検索し、お祭りの名前と開催地だけを表示する方法を教えてください。
  • MySQLのデータベースからお祭りの名前と開催地を検索して表示するためのPHPプログラムを作成したのですが、検索結果が表示されません。どのようにすれば表示することができますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

何故結果表示が while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) のLoopを抜けてからになっているのでしょうか?書くとしたらLoopの内側に書かないとダメです。 while($rs=$result->fetchRow(MDB2_FETCHMODE_ASSOC)) { if(substr(PHP_OS,0,3) == 'WIN') { $rs['name']=mb_convert_encoding($rs['name'], "EUC-JP", "SJIS"); $rs['address']=mb_convert_encoding($rs['address'], "EUC-JP", "SJIS"); } ?> <tr><td aling="center"><?=$rs['name']?></td> <td><?=$rs['address']?></td> </tr> <?php } ?> なお、OSがWindowsかどうかでmb_convert_encodingしている意図はさっぱりわかりません。Windowsとそれ以外のOSで書き方に違いがあるわけはないのですが・・・・。もしWindowsとそれ以外で入力フォームや出力の文字セットを変えているとしても(そういうことをする意味がわかりませんが)MySQLにクライアントの文字セットを通知するだけで済む話です。 また、エスケープにaddslashesを使うのは如何なものかと。プレースホルダを使ってください。

kimikj8
質問者

お礼

shimix様、解答ありがとうございます。 while文の部分は、私の書き間違いでした。申し訳ありませんでした。 mb_convert_encodingの部分に関しては、私が知り合いから貰ったPHPの本(速攻!図解プログラミング PHP+MySQL)に、 『Windows版MySQLの場合保存データの文字コードがShift_JISのため、PHPファイル(文字コードはEUC-JP)の中で作成されたSQLを発行すると、文字化けした状態で格納されてしまいます。このため、Windowsで稼働している時のみ、mb_convert_encoding関数で、SQL文の文字コードを「EUC-JP」から「SJIS」へ変換します。』 と書いてありました。 しかし、while文をshimix様のご指摘通り直した結果、文字化けしてしまい、mb_convert_encodingの部分をコメントアウトしたら文字化けも解消されました。 まだまだ勉強不足ですよね。 あきらめずに頑張っていきます。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

>指定されたモジュールが見つかりません。 そのエラーが出ているなら、貴方が構築した環境に問題があります。 たぶん、apacheかphpのどちらかに原因があるでしょう。 設定ファイル、DLLなど正しく設定もしくは保存されているかを確認して下さい。

kimikj8
質問者

お礼

memphis様 解答ありがとうございます。 memphis様のご指摘といろいろ調べた結果、DLLが正しく設定されていなかったため、起こった問題だということが分かりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A