- ベストアンサー
チェックボックス複数選択MYSQLの問題について
- PHPでチェックボックスの複数選択をMYSQLに反映させる際、一つしか反映されない問題が発生しています。スクリプトの一部を紹介します。配列を使用することはわかりましたが、それ以降の処理が分からず困っています。
- PHPでチェックボックスの複数選択をMYSQLに反映させる際、一つしか反映されない問題が発生しています。配列を使用することはわかりましたが、それ以降の処理がよくわかりません。どなたかご教示いただけませんか?
- PHPでチェックボックスの複数選択をMYSQLに反映させる際、一つしか反映されない問題が発生しています。配列を使用することはわかりましたが、それ以降の処理が理解できません。お知恵をお貸しください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> check1ですがこちらがテキストになっております。 char型かvarchar型、ということですか? 例えば、チェックボックスの"aaa"と"ccc"にチェックを入れたとき、 カラムcheck1にどういった内容が入れば正しいのですか? また、チェックボックスに入れた内容をデータベースに入れるとき、 通常はこんな方法を使うと思うのです。それは、以下のとおりです。 ・htmlのformを定義して、その中に(複数の)チェックボックスを設ける ・formには送信用のボタン定義を含む ・formのactionの設定で、入力結果を受け取る側のプログラムファイルを指定しておく ・入力結果を受け取った側では、内容に応じたSQL文を生成する このあたりは、どのようなプログラムを書かれていますか? 最初の投稿でスクリプトの一部だけ見せてくださいましたが、 この際全部見せてくださった方が、何をなさろうとしているか 伝わりやすいだろうと思うのです。
その他の回答 (3)
- asuncion
- ベストアンサー率33% (2127/6289)
> mysqlデーブルのカラム定義ですがこちらは check1 となっています。 check1カラムの属性(型と大きさ)は何ですか?
補足
asuncion様 ご返答ありがとうございます。 check1ですがこちらがテキストになっております。 また基本値はnullになっております。
- asuncion
- ベストアンサー率33% (2127/6289)
> こちらは<table></table>タグを使用しております。 伺いたいこととは違っていました。 最初の投稿で > $sql = "insert into table values('$check[]')"; と書かれています。これは、「table」という名前のMySQLテーブルに 何らかの値をinsertする、という意味です。 その、「table」というMySQLテーブルのカラム定義はどうなっていますか?
補足
再度のご返答ありがとうございます。 また返答を間違ってしまい申し訳ございません。 mysqlデーブルのカラム定義ですがこちらは check1 となっています。 今も何度も試しているのですが、MYSQLのデータベースで確認してみると ARRAYとしか表示されません。 また先ほどのスクリプトに誤りがありました <span class="checkbox"><input name="check1[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="bbb" />bbb</span> です。checkがcheck1になっております。
- asuncion
- ベストアンサー率33% (2127/6289)
さしあたり、tableというテーブルの定義を教えていただけますか? 複数のチェックボックスにチェックを入れたとき、 どのカラムにinsertしようとしているのかがよくわからないのです。
補足
さっそくのご返答ありがとうございます! こちらは<table></table>タグを使用しております。 初心者のためこの回答であってるのか分かりませんが 宜しくお願いします。
補足
asuncion様 詳しいご説明ありがとうございます。 こちらがそのスクリプトの全容になります。 <html> </head> <body> <form action="" method="GET" name="salon"> <table class="font12" border="1" cellpadding="5" cellspacing="0" width="500" bordercolor="#333333"> <tr> ><input name="sname" type="text" id="sname" size="30" /></td> </tr> <tr> <td>施術1(チェックボックス)<br />順番不問</td> <td> <span class="checkbox"><input name="check1[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="ccc" />bbb</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="ddd" />ddd</span><br /> <span class="checkbox"><input name="check1[]" type="checkbox" value="eee" />eee</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="fff" />fff</span><br /> <span class="checkbox"><input name="check1[]" type="checkbox" value="ggg" />ggg</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="hhh" />hhh</span><br /> <span class="checkbox"><input name="check1[]" type="checkbox" value="iii" />iii</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="kkk" />kkk</span> </td> </tr> <tr> <td colspan="2" align="right"><input type="submit" value="登録"></td> </tr> </table> </form> <?php extract($_POST); //MySQLサーバに接続 if (!$int_connect = @mysql_connect('localhost','aaa','aaa')) { die("can't connect mysql server."); } //データベースに接続 if (!@mysql_select_db("ccc", $int_connect)) { die("can't use selected database."); } $array = $_GET[check1]; $today = date("y-m-d"); $sql = "insert into table values(0, '$today','$array')"; mysql_query($sql); ?> </body> </html>