
こんにちは。
現在アンケートサイトを作成しているのですが、チェックボックスを利用した質問の複数選択した回答をデータベースに登録できません。
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)
No.1ベストアンサー
- 回答日時:
## php、PostgreSQLはさわっていないのであまり答える気はなかったけど。
チェックボックスを利用した質問の複数選択した回答ということなので、
漢字検定3級以上と英語検定3級以上にチェックを入れた場合、
//テーブル作成
********=> create table sample03(
********(> 資格 int);
の「資格」にはなにをいれるのでしょう?
ひょとして、23といれたい?
html上(というかブラウザ上というかそのDOM上ではというべきか?)では、sikaku[]は配列として扱われています。
だから、$sikaku = $_REQUEST["sikaku"];の結果は配列変数を受け取ると思うけど、
・・・文字列変数として受け取れるのかもしれません。
(ここは私はわかりません。)
配列変数となっているなら$sikaku[0],$sikaku[1],・・・を順につなげる必要あるはずです。
で、SQLですが、
insert into sample03 values('$sikaku')
のように''で囲むと文字型になり、数値型の項目に値を入れるときは大抵のデータベースではエラーに
なります。(PostgreSQLはよく知りませんけど、タブンエラーになるはず)
ここかもしれません。
どちらにしろ、$result にエラーが返ってきているのでは?
$result か他のエラーコードなどを参照できるようにして確認するほうがいいでしょう。
## 申し訳ないけど、これの方法は私はわかりませんので他の方の回答待ちしてください。
お返事ありがとうございました。
うまくチェックボックスのデータが書き込みできないので、phpやPosegreSQLの本を借りて勉強してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
USB3.0R-P2-LPPCI ドライバー
-
postgresql についてです
-
Mac High Sierraでのubuntuのus...
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
-
終端クォート ' が必要です と...
-
PostgressからMySQL(MariaDB)...
-
【PostgreSQL】行の値の並びを...
-
列が存在しないと言われる
-
PostgreSQL14.6のSSL対応について
-
ポストグレにあるExcelファイル...
-
PostgreSQL レコードからアイテ...
-
文字切り替えの時に 中央にでる A
-
postgreSQL カラムの全ての値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
timestampのデータはどのように...
-
エクセルvbaでpostgresに接続を...
-
insert処理でDATE型を追加したい
-
ゼロ割りエラーの回避について
-
PostgresSQLでの日付の加算減算
-
チェックボックスからデータベ...
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
副問合せを使わずにUNIONと同様...
-
SQLで、Join句で結合したテ...
-
UPDATEで既存のレコードに文字...
-
PostgreSQLのtimestamp型で時間...
-
既にテーブルが存在する場合の...
-
SQLサーバに対するSQL文で抽出...
-
エラーを起こす方法
おすすめ情報