• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBから抜き出した値を表示する方法)

DBから抜き出した値を表示する方法

このQ&Aのポイント
  • FORMで入力された値をもとにデータベースから値を拾ってきてそれを画面に表示させる方法を教えてください。
  • 具体的には、usersテーブルに格納されている「名前」と「ID」の情報を利用して、名前を入力するとその名前に紐付いたIDを表示させる処理です。
  • 現在のコードは、入力された名前を取得してデータベースから該当するIDを取得し、画面に表示する処理ですが、うまく動作していません。どこが問題なのか教えてください。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

まず大前提としてpostデータをextractするのは最悪なのでやってはいけません 面倒でも変数への代入は指定して処理をしましょう。 そのうえで今回の問題点はここ。 >$db = mysql_query('SELECT * FROM users where name='.$user_name, $con); $user_nameを文字列としてSQLで参照するならクォートで囲まなくてはいけません。 またmysqlに投げる際には全ての変数はmysql_real_escape_stringするのが基本です。 それと$dbに取った結果を、同じ名前の$dbに受け直すのもあまり美しくありません。 そうじてこんな感じになります。 $user_name=$_POST["user_name"]; $user_name=mysql_real_escape_string($user_name); $db = mysql_query("SELECT * FROM users where name='".$user_name."'", $con); $val = mysql_fetch_array($db,MYSQL_ASSOC); $message="あなたのIDは".$val['id']."です";

midorinodonchan
質問者

お礼

早速のご回答ありがとうございます。 おかげさまで正常に動くようになりました。 また、extractするのは良くないとの 助言もいただきありがとうございました。 見つけた時は便利だと思いましたが、 1つ1つ指定して代入するようにしました。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 動作確認したわけでは無いので違っていたら申し訳ないのですが $db = mysql_query('SELECT * FROM users where name='.$user_name, $con); のSQLが間違っています。 $db = mysql_query("SELECT * FROM users where name='".$user_name."'", $con); name='abc' 文字は''で囲まないといけません。

midorinodonchan
質問者

お礼

早速のご回答ありがとうございます。 文字列は"で囲まないといけないという 初歩的なミスですみません・・・ おかげさまで正常に動くようになりました。

関連するQ&A

専門家に質問してみよう