![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
チェックボックスの複数項目をDBにインサートしたいのですが、DBのフィールドを見ると、チェックボックスの値だけ空になってしまいます。
プログラミング初心者のため、基本的なところでつまずいている可能性も高いのですが、正しいコードがわかる方がいらっしゃいましたらご教授ください。
よろしくお願いします。
■DBの構造
以下のようなフィールド構造にしており、一人につき1行でデータを持ちたいと思っています。
フィールド name/ mail/comment/kokugo/sugaku/rika/syakai/eigo/・・・
● 実際のデータの持ち方(以下のようにしたいです。)
例 太郎/ taro@/hello/ 国語/数学/ / /
次郎/ jiro@/ nice/ / 数学/ /社会/ 英語
※太郎は、国語と数学をチェックボックスで選択
※次郎は、数学と社会と英語をチェックボックスで選択
■チェックボックス画面html(一部抜粋)
----
<form action="regist.php" method="post">
名前:<br />
<input type="text" name="name" size="30" value="" /><br />
メールアドレス:<br />
<input type="text" name="mail" size="30" value="" /><br />
コメント:<br />
<textarea name="comment" cols="30" rows="5"></textarea><br />
科目<br />
<form name="kamoku" method="post" action="regist.php">
国語<input type="checkbox" name="kokugo" value="国語">
数学<input type="checkbox" name="sugaku" value="数学">
理科<input type="checkbox" name="rika" value="理科">
社会<input type="checkbox" name="syakai" value="社会">
英語<input type="checkbox" name="eigo" value="英語">
<br />
-----
■phpのファイル(regist.php)
※該当部分だけ記述させていただきます。
----
<?php
// $checkboxの中身は配列
$checkbox = $_REQUEST["chk"];
?>
<html>
<head>
<title>DB登録練習</title>
</head>
<body>
// 選んだ科目を画面に表示させる
<tr>
<td>科目</td><td><?php
for($i=0; $i<sizeof($checkbox); $i++){
print "${checkbox[$i]}<br>";
}
?></td>
</tr>
// DB登録部分
<?php
$name = $_REQUEST['name'];
$mail = $_REQUEST['mail'];
$comment = $_REQUEST['comment'];
$kokugo = $_REQUEST['kokugo'];
$sugaku = $_REQUEST['sugaku'];
$rika = $_REQUEST['rika'];
$syakai = $_REQUEST['syakai'];
$eigo = $_REQUEST['eigo'];
$del_flag = $_REQUEST['del_flag'];
$reg_date = $_REQUEST['reg_date'];
$result = mysql_query("INSERT INTO DBpractice(name, mail, comment, kokugo,sugaku,rika, syakai, eigo,del_flag,reg_date) VALUES('$name', '$mail', '$comment','$kokugo','$sugaku','$rika','$syakai','$eigo','0', now())", $conn);
if (!$result) {
exit('データを登録できませんでした。');
}
----
チェックボックスで選択した複数科目をブラウザ上で表示させるところは上手くできるのですが、DBに挿入するときのみ、科目のみがうまく入りません。(他の項目は挿入されています。)
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
$checkbox = $_REQUEST["chk"];
の前に、
print_r($_POST);
と書いて、どんな風に値が渡されているのか確認しましょう。
解決方法は見えてくると思いますよ。
No.2
- 回答日時:
解決しているのであればよいですが、見た限り
国語<input type="checkbox" name="chk[]" value="国語">
数学<input type="checkbox" name="chk[]" value="数学">
理科<input type="checkbox" name="chk[]" value="理科">
社会<input type="checkbox" name="chk[]" value="社会">
英語<input type="checkbox" name="chk[]" value="英語">
という処理なのではないですか?
配列で持つとうまくデータを処理できなかったため、
結局、nameは一つ一つ個別で持つことにしました。
回答ありがとうございました。
※解決ステータスに変更するのを忘れておりました。失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP php ログイン 1 2022/11/01 00:24
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
DBの値をチェックボックスに反映させたい
PHP
-
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
-
4
DB設計について
MySQL
-
5
チェックボックス複数選択 mysql受け渡し
PHP
-
6
SQLの書き方(チェックボックス)
Oracle
-
7
チェックボックスを用い、MySQLからデータを取得
PHP
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
1つのformで複数のactionを実行できますか?
JavaScript
-
10
画面が更新されてもチェックボックスのチェック状態を維持したい
PHP
-
11
$_SESSIONに二次元配列を使えるのですか?
PHP
-
12
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
13
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
14
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
15
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
16
ServletからServletへの値渡し
Java
-
17
php mysql でチェックボックスによる検索
PHP
-
18
ループ処理の際、最後だけ,"をつけたくない"
Java
-
19
checkboxクリック時、SQLを実行し、ボタンの有効・無効を判定する方法について
PHP
-
20
ループでチェックボックスにcheckedを入れたい
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【MYSQL】asでリネームしてwher...
-
月別、販売員別の集計がわかり...
-
SQL文で右から1文字だけ削除す...
-
カウント結果を1レコードの中...
-
【初歩】ラジオボタンをつかっ...
-
SQLの集計で「全て」の合計も表...
-
使うべきでない文字。
-
JOINでの結果取得 サブクエリ...
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
MERGE文を単体テーブルに対して...
-
SELECTで1件のみ取得するには?
-
Date型にNULLをセットしたい V...
-
ファイル書込みで一行もしくは...
-
カレントレコードが無い事を判...
-
あるカラムのMAX値+1をINSERTし...
-
Accessのクエリでフィールドの...
-
SET句内で複数の条件を指定して...
-
レコードセット(ADO.Recordset)...
-
レコード長を数えてくれる関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文で右から1文字だけ削除す...
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
sum()の出力結果順に並び替えを...
-
初心者Mysqlの関数のsubstring...
-
SQLの集計で「全て」の合計も表...
-
割合(パーセント)を求めるに...
-
MySQL のデータからドロップダ...
-
チェックボックスの項目をDBにi...
-
【初歩】ラジオボタンをつかっ...
-
MySQLで MAX()とGROUP BYを使う...
-
カウント結果を1レコードの中...
-
phpmyadminはトリガーやIF文を...
-
月別、販売員別の集計がわかり...
-
replaceした上でwhere
-
今週の日曜日から土曜日までの...
-
サブクエリ内で INNER JOIN は
-
複数の表の条件でのDELETE文
-
姓名の前後を入れ替えるSQL命令...
-
mySQLでグループ別の順位を入力
おすすめ情報