PHPからPostgreSQLへの書き込み

このQ&Aのポイント
  • アンケートサイトでのデータ書き込みの件
  • PostgreSQLへのデータ書き込みについての問題
  • TeraTermでのデータ表示に関する課題
回答を見る
  • ベストアンサー

PHPからPostgreSQLへの書き込み

現在アンケートサイトを作成しているのですが、単純にラジオボタンからPostgreSQLにデータを書き込みたいのですが表示されません。 アンケートサイトからラジオボタンで選択し、データの書き込みはできているようです。 しかし、TeraTermからPostgreSQLに接続しデータ表示してみるとなにかしらデータは入っているみたいなんですが、データの内容が表示されません どなたか詳しい方ご指摘お願いします。 ※アンケートサイト <html> <head> <title>テスト</title> </head> <body> <form method="post" action="sample.php"> <input type="radio" name="sam" value="山">山<br> <input type="radio" name="sam" value="川">川<br> <input type="radio" name="sam"value="谷">谷<br><br> <input type="submit" name="OK" value="OK"> </form> </body> </html> ※php処理 <html> <head> <title>結果</title> </head> <body> <?php $dbconn = pg_connect ("dbname=***** user=*****"); $result = pg_query ($dbconn, urldecode("insert into sample values('$sam');")); pg_close($dbconn); ?><br> </body> </html> ※TeraTermからデータ入力の確認 *****=> create table sample( *****(> sumi text); CREATE TABLE *****=> select * from sample; sumi ------ (0 rows) *****=> grant select on sample to ******; GRANT <アンケートサイトで選択> *****=> select * from sample; sumi ------ (1 row) <アンケートサイトで選択> *****=> select * from sample; sumi ------ (2 rows) <アンケートサイトで選択> *****=> select * from sample; sumi ------ (3 rows)

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • 1minn
  • ベストアンサー率57% (52/90)
回答No.1

$samはどうやって取得してるんですか? 適当に書いたサンプルだとは思いますが、このソースでは$samは未定義なのでnullでも入るんじゃないですかね? あとurldecodeって必要ですか? これでいい気がしますが・・・ $sam = pg_escape_string($_POST['sam']); $sql = "insert into sample values('". $sam ."')"; $result = pg_query ($dbconn, $sql);

ad125g
質問者

お礼

お返事ありがとうございます。 確かに$samに対して未定義だったためデータベースに書き込みができていなかったみたいです。 1minnさんのご指摘通りプログラムを改良したところ書き込みができました。 これでアンケートが作れそうです。本当に助かりました。 ありがとうございました。 またわからないことがありましたらこちらで質問させていただきますのでその時はよろしくお願いします。

関連するQ&A

  • チェックボックスからデータベースへ複数書き込み

    こんにちは。 現在アンケートサイトを作成しているのですが、チェックボックスを利用した質問の複数選択した回答をデータベースに登録できません。 htmlやphp、PostgreSQLに詳しい方指摘お願いします。 ※sample.html <form method="post" action="sample.php"> <b>7.あなたはどのような資格を持っていますか?</b><br> <input type="checkbox" name="sikaku[]" value="1" checked>ITパスポート <input type="checkbox" name="sikaku[]" value="2">漢字検定3級以上 <input type="checkbox" name="sikaku[]" value="3">英語検定3級以上 <input type="checkbox" name="sikaku[]" value="4">自動車運転免許 <input type="checkbox" name="sikaku[]" value="5">簿記 <input type="checkbox" name="sikaku[]" value="6">宅建 <input type="checkbox" name="sikaku[]" value="7">TOEIC600点以上 <input type="checkbox" name="sikaku[]" value="8">その他<br><br> <input type="submit" name="OK" value="OK"> </form> ※sample.php <?php //htmlから"sikaku"を取得 $sikaku = $_REQUEST["sikaku"]; //dbに接続・dbに書き込みSQL文 $dbconn = pg_connect ("dbname=****** user=********"); $result = pg_query ($dbconn, urldecode("insert into sample03 values('$sikaku');")); //接続を閉じる pg_close($dbconn); ?> ※PostgreSQL(table : sample03) //テーブル作成 ********=> create table sample03( ********(> 資格 int); CREATE TABLE //権限 ********=> grant select on sample03 to ********; GRANT //テーブルの表示 ********=> select * from sample03; 資格 ------ (0 rows)

  • アンケートフォームについて

    携帯電話からアンケートを送信出来るようにしたいのですが、どういう風にしたらよいか教えて下さい。 初心者ですのでわかり易く説明して頂くと幸いです。 タグは <HTML> <HEAD> <TITLE>登録</TITLE> </HEAD> <BODY> <BR><FORM action="mailto:**@yahoo.co.jp" METHOD="get" enctype="text/plain"> 氏名:<INPUT TYPE=TEXT NAME="name"><BR> メールアドレス:<INPUT TYPE=TEXT NAME="number"> <BR> ホームページURL:<INPUT TYPE=TEXT NAME="number"> <BR> 在住市名<BR> <SELECT NAME="市名"> <OPTION VALUE="○市">○市  <OPTION VALUE="○市">○市  <OPTION VALUE="その他">その他</SELECT><BR> ご意見・ご感想をお寄せ下さい。<BR> <TEXTAREA NAME="感想 rows=" COLS=10 5"></TEXTAREA><BR> <BR> 当サイトを知ったきっかけは?<BR> <INPUT TYPE=RADIO NAME="きっかけ" VALUE="検索">検索サイト<BR> <INPUT TYPE=RADIO NAME="きっかけ" VALUE="友人・知人">友人・知人<BR> <INPUT TYPE=RADIO NAME="きっかけ" VALUE="雑誌">雑誌<BR> <INPUT TYPE=RADIO NAME="きっかけ" VALUE="広告・チラシ">広告・チラシ<BR> <INPUT TYPE=SUBMIT VALUE="送信"><INPUT TYPE=RESET VALUE="やり直し"><BR> </FORM></BODY> </HTML>

    • ベストアンサー
    • CGI
  • php ファイルの書き込み読みだし

    htmlフォームから回答 phpで処理計算しlog.csvに保存、log.csvファイルを読みだしその結果をブラウザに表示するスクリプトを書いておりますが、log.csvファイルを読みだして結果を表示の部分が調べてもできなくて困っております。どなたか知恵を貸してほしいです。批判や中傷などは書かないでください。 <HTML> <HEAD> <TITLE>テキスト送信のテスト></TITLE> </HEAD> <FORM name="toi_5.html"method="post" action="toi5.php"> <Div Align="center">名前:<BR> <INPUT type="text"name="onamae"> <BR> 性別:<BR> <INPUT type="radio"name="gender" value="男">男<BR> <INPUT type="radio"name="gender" value="女">女<BR> <BR> <SELECT name="syokugyou"> <OPTION value""selectd>職業をえらんでください</OPTION> <OPTION value"学生">学生</OPTION> <OPTION value"会社員">会社員</OPTION> <OPTION value"公務員">公務員</OPTION> <OPTION value"自営業">自営業</OPTION> <OPTION value"その他">その他</OPTION> </SELECT><BR> <p></p> 満足度を答えてください:<BR> <INPUT type="checkbox" name="hobby[]" value="満足"> 満足<BR> <INPUT type="checkbox" name="hobby[]" value="やや満足"> やや満足<BR> <INPUT type="checkbox" name="hobby[]" value="普通"> 普通<BR> <INPUT type="checkbox" name="hobby[]" value="やや不満"> やや不満<BR> <INPUT type="checkbox" name="hobby[]" value="不満"> 不満<BR> <BR> <INPUT type="submit" value="回答"> </div> </FORM> </BOBY> </HTML> <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BOBY> <p> <Div Align="center">名前</p> <?php print $_POST["onamae"]; ?> <p> <?php if(isset($_POST["gender"])&&($_POST["gender"]=="男"|| $_POST["gender"]=="女")){ print"性別:<BR>"; print $_POST["gender"]; }else{ print"性別を選んでください。<BR>"; } ?> <?php session_start(); if (isset($_SESSION["gender"])) { $_SESSION["gender"]++; print($_SESSION["gender"]."回目"); } else { $_SESSION["gender"] = 0; } ?> <p> </p> <?php if($_POST["syokugyou"]<>""){ print"職業:<BR>"; print$_POST["syokugyou"]; }else{ print"職業をえらんでください<BR>"; } ?> <?php if (isset($_SESSION["syokugyou"])) { $_SESSION["syokugyou"]++; print($_SESSION["syokugyou"]."回目"); } else { $_SESSION["syokugyou"] = 0; } ?> <p> </p> 満足度を答えてください<BR> <?php if(isset($_POST["hobby"])){ $hobby=implode($_POST["hobby"]); print $hobby; }else{ } ?> <?php if (isset($_SESSION["hobby"])) { $_SESSION["hobby"]++; print($_SESSION["hobby"]."回目"); } else { $_SESSION["hobby"] = 0; } ?> <?php // 出力 $fileName = "log.csv"; header('Content-Disposition: attachment; filename=' . $fileName); ?> </div> </body> </html> </BOBY> </HTML>

    • ベストアンサー
    • PHP
  • ニフティのメールデコードについて教えてください

    webアンケートを作るためにhttp://homepage.nifty.com/mail/sample.htm#enqueteを参考にしてみたのですが(送信ボタンを押すと)「メールアドレスが記入されていないか形式が不正です」とエラーメッセージが出てしまいます。以下の書き方で間違っている所があるでしょうか。 <HTML> <HEAD> <TITLE>質問紙のサンプル</TITLE> </HEAD> <BODY> <FORM METHOD="post" ACTION="http://mdec.nifty.com/cgi-bin/ahpmdec.cgi"> <INPUT TYPE="hidden" NAME="ok_page" VALUE="http://homepage?.nifty.com/***/***.htm"> <INPUT TYPE="hidden" NAME="to_mail" VALUE="***@nifty.com"> <INPUT TYPE="hidden" NAME="sub" VALUE="質問紙調査の結果"> 名前: <br> <INPUT TYPE="text" NAME="name" SIZE="30" MAXLENGTH="40"> <br> メールアドレス: <br> <INPUT TYPE="text" NAME="from" SIZE="25" MAXLENGTH="60"> <br> コメント: <br> <TEXTAREA NAME="body" ROWS="20" COLS="30"> </TEXTAREA> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • php アンケートについての質問

    アンケートフォームを作成しました。回答ボタンを押すとcsvファイルにアンケート結果の内容を保存できるように造りたいのですが参考になるようなものがなくて困っています。どなたか参考になるようなソースなどをお教えくださると助かります。 <HTML> <HEAD> <TITLE>テキスト送信のテスト></TITLE> </HEAD> <FORM name="form1"method="post" action="view.php"> <Div Align="center">名前:<BR> <INPUT type="text"name="onamae"> <BR> 性別:<BR> <INPUT type="radio"name="gender" value="男">男<BR> <INPUT type="radio"name="gender" value="女">女<BR> <BR> <SELECT name="syokugyou"> <OPTION value""selectd>職業をえらんでください</OPTION> <OPTION value"学生">学生</OPTION> <OPTION value"会社員">会社員</OPTION> <OPTION value"公務員">公務員</OPTION> <OPTION value"自営業">自営業</OPTION> <OPTION value"その他">その他</OPTION> </SELECT><BR> <p></p> 満足度を答えてください:<BR> <INPUT type="checkbox" name="hobby[]" value="満足"> 満足<BR> <INPUT type="checkbox" name="hobby[]" value="やや満足"> やや満足<BR> <INPUT type="checkbox" name="hobby[]" value="普通"> 普通<BR> <INPUT type="checkbox" name="hobby[]" value="やや不満"> やや不満<BR> <INPUT type="checkbox" name="hobby[]" value="不満"> 不満<BR> <BR> <INPUT type="submit" value="回答"> </div> </FORM> </BOBY> </HTML> <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BOBY> <p> <Div Align="center">名前</p> <?php print $_POST["onamae"]; ?> <p> <?php if(isset($_POST["gender"])&&($_POST["gender"]=="男"|| $_POST["gender"]=="女")){ print"性別:<BR>"; print $_POST["gender"]; }else{ print"性別を選んでください。<BR>"; } ?> <p> </p> <?php if($_POST["syokugyou"]<>""){ print"職業:<BR>"; print$_POST["syokugyou"]; }else{ print"職業をえらんでください<BR>"; } ?> <p>

    • ベストアンサー
    • PHP
  • PHP初心者です。基本的な所でつまづいています。

    PHP初心者です。基本的な所でつまづいています。  PHP初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあります。PHPを勉強してから、まだ月日が 経っていないので基本的なことでつまづいています。 どなたかご教授下さい。 タイプ10代・20代・30代をselectから選び、食べ物をインプット し、radioボタンで好みを選びます。登録ボタンを押すとテキスト ファイルlist.txtに書き込まれ、form1.phpに10代・20代・30代の selectボタンを作り、その中から選び表示ボタンをクリック する。  もし、10代を選んだらそのデータだけを表示するように したいのですが、登録してテキストファイルに書き込まれては いるのですが、表示ボタンを押しデータを表示する所が、 わからないのでどなたかご教授下さい。    サイトや書籍で探しては見たのですが、基本的なことだと思う のですが、あまり詳しく載っているのがなく困っています。  もし、PHP初心者でもわかるサイト&書籍があれば教えて いただけませんか? form.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="form.php"> タイプ:<select name="type"> <option value="10代">10代</option> <option value="20代">20代</option> <option value="30代">30代</option> </select><br><br> 食べ物:<input type="text" name="tabemono" size=10><br><br> <input type="radio" name="konomi" value="好き">好き <input type="radio" name="konomi" value="嫌い">嫌い <input type="radio" name="konomi" value="どちらでもない">どちらでもない<br><br> <input type="submit" value="登録"> </form> </body> </html> form.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $type=$_POST["type"]; $tabemono=$_POST["tabemono"]; $konomi=$_POST["konomi"]; $data=$type.",".$tabemono.",".$konomi."\n"; $f=fopen("list.txt","a"); fputs($f,$data); fclose($f); ?> </body> </html> テキストファイルの書込みは出来ています。    ここから先の表示ボタンを押しデータを表示する所が、 わからないです。 form1.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> 分類:<select name="type"> <option value="10代">10代</option> <option value="20代">20代</option> <option value="30代">30代</option> </select> <input type="submit" value="表示" name="btn"><br> <hr> <? $f=file("list.txt"); while( list($key,$value)=each($f)){ $a=split(",",$value); } ?> </body> </html>  実用的ではないかと思われますが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpでメール送信

    phpでメール送信を行ってもメールが来ません。 普通のメールアドレスです。使っているサーバーはちゃんとphpが つかえるようです。ソースは下記です。訂正するところなどありまし たらよろしくお願いします。 ソース:(ホーム)<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <form action="1.php" method="post"> ホームページの名前:<br> <input type="text" name="subject" size="30" value=""><br> ホームページのアドレス:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> ホームページの紹介文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="送信する"> </form> </body> </html> 送信側:<?php mb_language("Japanese"); mb_internal_encoding("SHIFT-JIS"); $message = "ホームページのアドレス:" . $_POST["name"] . "\nホームページの紹介文:" . $_POST["message"]; if (!mb_send_mail("めーるアドレス@メールアドレス.jp", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>sample</title> </head> <body> <p>メールが送信されました。</p> </body> </html>

  • アンケートフォームの作り方

    アンケートフォームを作りたいのですが、以下のプログラムにおいてのoutput.php の作り方がわかりません。最終的には、アンケート結果を出力(最後の質問の見る回数に関しては、これまでの平均をだす)をしたいとおもっています。http://www.standpower.com/php_form.htmlを参考にしてつくってみたもののうまくいきません。というのも、そのページに書かれている質問は1つしかないので、今回のように3つ質問があるとどうすればいいのかわからないからです。どなたか教えていただけないでしょうか? <html> <body> <b>あなたの年齢を教えてください</b> <form method = "post" action = "output.php"><br> <input type = "radio" name = "toshi" value = "1" checked>10代<br> <input type = "radio" name = "toshi" value = "2" >20代<br> <input type = "radio" name = "toshi" value = "3" >30代<br> <input type = "radio" name = "toshi" value = "4" >40代<br> <input type = "radio" name = "toshi" value = "5" >50代<br> <input type = "radio" name = "toshi" value = "6" >60代<br> <input type = "radio" name = "toshi" value = "7" >70歳以上<br><br> <b>お昼によくみる番組は?</b><br> <input type = "radio" name = "type" value = "8" checked>ピンポ<br> <input type = "radio" name = "type" value = "9" >スクランブル<br> <input type = "radio" name = "type" value = "10" >笑っていいとも<br> <input type = "radio" name = "type" value = "11" >おもいっきりいいTV<br><br> <b>週に何回見ますか?</b><br> <input type = "text", name = "test_about_other" maxlength="100"><br><br> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="やり直し"<BR><BR> </form> </body> </html>

    • ベストアンサー
    • PHP
  • PHPで投票カウンタの作成

    PHPで投票カウンタを作成したいと思います。 構造としてはラジオボタンが3つ並んでいて、そのどれかを選び 下にあるOK(ひとつだけ)ボタンをクリックすると、ラジオボタンの横に数値がカウントされるという簡易的なものです。 下記のコードに足りないところやいらないところを教えてください。 ド素人のためご教授願います。 <?php if(isset($_COOKIE["tohyo"])){ $tohyo = $_COOKIE["tohyo"]; $tohyo++; }else{ $tohyo = 0; } setcookie("tohyo", $tohyo, time()+60); ?> <html> <head> <title>投票カウンター</title> </head> <body> <form action="count2.php"> <p> <input type="radio" name="tohyo" value="1"><?php print $value["$kekka"][1]; ?><br> <input type="radio" name="tohyo" value="2"><?php print $value["$kekka"][2]; ?><br> <input type="radio" name="tohyo" value="3"><?php print $value["$kekka"][3]; ?> </p> <input name="submit" type="submit" value="投票"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • phpの掲示板で新しい順に表示したい

    php初心者です。 phpで掲示板を作っています。 新しい順に表示したいのですが、やり方がわかりません。 古い順に表示するやり方はわかるのですが、どうやったらよいでしょうか。 古い順のソースです <html> <head> <title>一行掲示板</title> </head> <body> <h2>一行掲示板</h2> 書き込む内容を入力してください。<hr color="black"> <form name="form" action="./sample01.php" method="POST"> タイトル      <input type=text name="title" action="./sample01.php" size="30" method="POST"><br><br> 名前          <input type=text name="namae" action="./sample01.php" size="30" method="POST"><br><br> メッセージ  <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"> <input name="write" type="reset" value="リセット"><hr> </form> <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "タイトル.${i}:<br>\n名前.${i}:<br>\n記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> <br> <a href="../phpcollect/index.html">トップページへ</a> </body> </html> どうかわかる方おりましたらご教授お願いします。

    • 締切済み
    • PHP

専門家に質問してみよう