• ベストアンサー
  • すぐに回答を!

チェックボックス 複数選択 MYSQL

PHP習い始めたのですがどうしても分からない問題がありましたので 質問をさせて頂きました。 現在チェックボックスで複数選択された情報をMYSQLに反映させようとしているのですがどうしても複数選択された項目の内、一つしかMYSQLに反映されません。 こちらがスクリプトの一部になります。 <span class="checkbox"><input name="check[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="check[]" type="checkbox" value="bbb" />bbb</span> <span class="checkbox"><input name="check[]" type="checkbox" value="ccc" />ccc</span><br /> //MYSQL $sql = "insert into table values('$check[]')"; 配列を使うとまでは調べて分かったのですが、そこからがどうしても 分かりません。どなたご存知になるかたがおりましたら 是非お伺い出来ませんでしょうか。宜しくお願い致します。

noname#130289

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数578
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.4
  • asuncion
  • ベストアンサー率32% (1741/5378)

> check1ですがこちらがテキストになっております。 char型かvarchar型、ということですか? 例えば、チェックボックスの"aaa"と"ccc"にチェックを入れたとき、 カラムcheck1にどういった内容が入れば正しいのですか? また、チェックボックスに入れた内容をデータベースに入れるとき、 通常はこんな方法を使うと思うのです。それは、以下のとおりです。 ・htmlのformを定義して、その中に(複数の)チェックボックスを設ける ・formには送信用のボタン定義を含む ・formのactionの設定で、入力結果を受け取る側のプログラムファイルを指定しておく ・入力結果を受け取った側では、内容に応じたSQL文を生成する このあたりは、どのようなプログラムを書かれていますか? 最初の投稿でスクリプトの一部だけ見せてくださいましたが、 この際全部見せてくださった方が、何をなさろうとしているか 伝わりやすいだろうと思うのです。

共感・感謝の気持ちを伝えよう!

質問者からの補足

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>

関連するQ&A

  • チェックボックス複数選択 mysql受け渡し

    PHPを習いはじめたのですが分からない所がありましたので質問をさせて頂きました。 チェックボックスを作り複数選択されたデータをMYSQLに受け渡したいのですがどうしてもうまくいきません。受け渡しが出来たかと思えばARRAYのみ表示されてしまい、重要な内容が一切表示されません。 こちらがスクリプトになります。 <tr> <td>(チェックボックス)<br />順番不問</td> <td> <span class="checkbox"><input name="check1[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="check1[]" type="checkbox" value="bbb" />bbb</span> </tr> </td> //mysql $sql = "insert into table values('$check1')"; 多分この$sql分のなにかが間違ってると思うですがいくらやっても 出来ません、、 mysql の設定はカラムはcheck1となっており、text, 値はnullとなっております。 どのなたか複数チェックボックスで表示された項目をMYSQLのデータベースに移行できる方法をご存知の方お伺い出来ませんでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • checkboxクリックされていないidを取得

    <form id="chkform"> <input type="checkbox" name="check" value="aaa" id="aaa">aaa <input type="checkbox" name="check" value="bbb" id="bbb">bbb <input type="checkbox" name="check" value="ccc" id="ccc">ccc                   ・                   ・                    ・ <input type="checkbox" name="check" value="zzz" id="zzz">zzz </form> チェックボックスの複数の項目の内、チェックされていない全てのIDを取得する方法を教えてください。 よろしくお願いいたします。

  • チェックボックス 複数選択

    現在PHPを勉強しているのですがどうしてもわからなくなってしまったので 質問をさせて頂きます。 現在自分が作ろうとしているのは 登録フォーム→確認ページ→登録完了ページ(MYSQLに接続)の流れになっております。 その中でチェックボックスでつまずいております。 こちらにそのコードを一部を記載させて頂きます。 どこで困っているかと申しますと、登録フォームから確認ページまでは 複数選択されたチェックボックスを表示されることができたのですが、 確認ページから登録ページに変わる際に文字化けなどをし、 mysqlに接続して登録した際も文字化けになってしまいます。 他にも変数の受け渡しもうまく出来ていないと思います。 自分の中の結論としては確認ページのhiddenあたりが間違ってるのでは ないかと思ってるのですが何度試してみてもうまくいきません。 大変困っており、誰かご存知の方、もしくはこういう風に変更した方がいいとかありましたらご教授をお願い出来ませんでしょうか? 1,登録フォーム <tr> <td>施術(チェックボックス)<br />順番不問</td> <td> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="bbb" />bbb</span> </td> </tr> 2,登録確認ページ $sejyutu = $_POST["sejyutu"]; <?php if (trim($sejyutu) == "" || !isset($sejyutu)){ echo "施術が選択されておりません。"; $flag_sejyutu=0; } elseif (empty($sejyutu)){ echo "施術が選択されておりません"; $flag_sejyutu=0; } else { if(isset($sejyutu) and count($sejyutu)>0){ $sejyutu_value = ""; for($i=0;$i<count($sejyutu);$i++){ if($i == 0){ $sejyutu_value .= $sejyutu[$i]; } else { $sejyutu_value .= " " . $sejyutu[$i]; } } } print mb_convert_encoding(trim($sejyutu_value),"sjis","euc-jp") ; $flag_sejyutu=1; } ?> <?php if($flag_sejyutu==1) { ?> <form action="reg_complete.php" method ="post"> <input type="hidden" name="sejyutu_value[]" value="<?php echo $sejyutu_value; ?>"> } 3,登録完了ページ $sejyutu = $_POST['sejyutu_value']; それからmysqlに接続。

    • ベストアンサー
    • PHP

その他の回答 (3)

  • 回答No.3
  • asuncion
  • ベストアンサー率32% (1741/5378)

> mysqlデーブルのカラム定義ですがこちらは check1 となっています。 check1カラムの属性(型と大きさ)は何ですか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

asuncion様 ご返答ありがとうございます。 check1ですがこちらがテキストになっております。 また基本値はnullになっております。

  • 回答No.2
  • asuncion
  • ベストアンサー率32% (1741/5378)

> こちらは<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になっております。

  • 回答No.1
  • asuncion
  • ベストアンサー率32% (1741/5378)

さしあたり、tableというテーブルの定義を教えていただけますか? 複数のチェックボックスにチェックを入れたとき、 どのカラムにinsertしようとしているのかがよくわからないのです。

共感・感謝の気持ちを伝えよう!

質問者からの補足

さっそくのご返答ありがとうございます! こちらは<table></table>タグを使用しております。 初心者のためこの回答であってるのか分かりませんが 宜しくお願いします。

関連するQ&A

  • チェックボックスの受け渡し

    以前こちらでも質問をさせて頂き、無事に解決をしたと思ったのですが、 どうにでもできないことが有りましたのでご質問をさせて頂きました。 チェックボックスを使用し、複数選択された項目を 次のページに受け渡す時 例えば -form.php- <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="bbb" />bbb</span> -kakunin.php- $sejyutu = $_POST['sejyutu']; if(isset($sejyutu) and count($sejyutu)>0){ $str_sejyutu = ""; for($i=0;$i<count($sejyutu);$i++){ if($i == 0){ $str_sejyutu .= $sejyutu[$i]; } else{ $str_sejyutu .= " " . $sejyutu[$i]; } } } ?> という形でやっているのですが、kakunin.phpで表示がされません。 foreach分も使ってみたのですが、それでもまた表示がされません。 あともう一点あるのですが、例えば form.phpからkakunin.phpに情報を飛ばし、またその情報を修正のために form.phpに戻す場合、チェックボックスで予め選択された項目を 保持したまま戻ることはできるのでしょうか? どなたかお分かりになるかたがいましたらご教授お願いできないでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • CGIでチェックボックスを使う方法

    チェックボックスをCGI(C言語)で使用する方法を教えて下さい。 例えば、HTMLで <input type="checkbox" name="Check1" value="Sel11" /> チェック1 選択1<br /> <input type="checkbox" name="Check1" value="Sel12" /> チェック1 選択2<br /> <input type="checkbox" name="Check1" value="Sel13" /> チェック1 選択3 <hr /> <input type="checkbox" name="Check2" value="Sel21" checked /> チェック2 選択1<br /> <input type="checkbox" name="Check2" value="Sel22" /> チェック2 選択2<br /> <input type="checkbox" name="Check2" value="Sel23" checked /> チェック2 選択3 というプログラムはCGI(C言語)ではどの様に記述すれば良いでしょうか?

    • ベストアンサー
    • CGI
  • チェックボックス連結

    MySQLで、perlを使ってチェックボックスでデータを送信するのですが、 カラムを分けずに、チェックボックスで複数選択されたデータを、;などの仕切りで同一フィールドへ記録したいのですが、やり方がわかりません。 <input type = checkbox name = col1 value="1"> <input type = checkbox name = col1 value="2"> <input type = checkbox name = col1 value="3"> <input type = checkbox name = col1 value="4"> 結果 col1 |col2 | +-------------- 1;2;3;4| | のような感じです。よろしくお願いします。

    • ベストアンサー
    • MySQL
  • チェックボックスで複数選択する方法教えて下さい

    いつもありがとうございます。 00.PHPというファイルにチェックボックスを配置して複数選択し 同じ00.phpにPOSTで情報送り、表示させたいのですが、 下記の記述では「Array」としか表示されません。 検索結果を最終的にはMYSQLにデータ登録をしたいのですが うまくいきません。御指導お願いします。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>無題ドキュメント</title> </head> <body> <? echo $_POST["working_days"] ?> <form action="00.php" method="post">  <label>  <input type="checkbox" name="working_days[1]" value="1"> ド短期1日~OK <input type="checkbox" name="working_days[2]" value="2"> 週2、3日程度  <input type="checkbox" name="working_days[3]" value="3"> 月~金曜日 <input type="checkbox" name="working_days[4]" value="4"> 土日祝日のみ <input type="checkbox" name="working_days[5]" value="5"> 毎日オールフリー</label>      <input type="submit" name="Submit" value="登録"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • チェックボックス選択で(3つ)まで

    チェックボックス選択で(3つ)まで <input type="checkbox" name="fhobby" value="animation">アニメ <input type="checkbox" name="fhobby" value="game">ゲーム <input type="checkbox" name="fhobby" value="reading">読書 <input type="checkbox" name="fhobby" value="amusement">娯楽 <input type="checkbox" name="fhobby" value="comics">漫画 <input type="checkbox" name="fhobby" value="jogging">ジョギング<br> <input type="checkbox" name="fhobby" value="cycling">サイクリング <input type="checkbox" name="fhobby" value="shopping">ショッピング <input type="checkbox" name="fhobby" value="picture">絵画 <input type="checkbox" name="fhobby" value="travel">旅行 <input type="checkbox" name="fhobby" value="others">その他

    • ベストアンサー
    • HTML
  • phpでのメールフォームの作成について

    HTMLで <form action="mail.php" method="post"> <input name="aaa" type="checkbox" id="aaa" value="AAA" checked> <input name="bbb" type="checkbox" id="bbb" value="BBB" checked> <input name="ccc" type="checkbox" id="ccc" value="CCC" checked> </form> として、次に進むボタンを押すとmail.phpに飛び mail.phpでは、チェックされたものだけを表示したいのですが、どうすればよいでしょうか? もし、AAAとBBBが選ばれたら あなたが選んだのは AAA、BBBです。 と表示したいです。そのあとにメールフォームを続けるつもりです。 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • チェックボックスの全選択

    <input type="checkbox" name="chk" value=1> <input type="checkbox" name="chk" value=2> <input type="checkbox" name="chk" value=3> <input type="checkbox" name="chk" value=4> <input type="checkbox" name="chk" value=5> このように同一名称のチェックボックスに対して ボタンを押下された時全てのチェックボックスを チェックするJavaScriptの 書き方を教えて貰えないでしょうか

  • 複数のチェックボックスをチェックしたい

    質問させてください。 複数のチェックボックスを項目別に全てチェックするようなjqueryの書き方をご教授いただきたいです。 <table> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />a</li> <li><input type="checkbox" name="" value="" />b</li> <li><input type="checkbox" name="" value="" />c</li> <li><input type="checkbox" name="" value="" />d</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />e</li> <li><input type="checkbox" name="" value="" />f</li> <li><input type="checkbox" name="" value="" />g</li> <li><input type="checkbox" name="" value="" />h</li> </td> </tr> <tr> <td> <input type="checkbox" name="" />まとめてチェック </td> </tr> <tr> <td> <li><input type="checkbox" name="" value="" />i</li> <li><input type="checkbox" name="" value="" />j</li> <li><input type="checkbox" name="" value="" />k</li> <li><input type="checkbox" name="" value="" />l</li> </td> </tr> </table> 上記のようにそれぞれの項目に「まとめてチェック」のチェックボックスがあり、 そこに該当するチェック項目は全てチェックorチェックを外す っという挙動の実装を考えています。 jqueryでやりたいのですが、javascript、jqueryがかなり苦手でいまいちいきません。 ググって $(function(){ $('#all').click(function(){ if(this.checked){ $('#check input').attr('checked','checked'); }else{ $('#check input').removeAttr('checked'); } }); }); このソースを見つけたのですが、これだと一つの項目でしか実装できず 項目分このjqueryを書くのも余り良い書き方だと思えません。 どなたか、ご教授お願いいたします。

  • 複数のチェックボックス&配列にランダムな数字

    こんにちは。PHP学習中のものですが、今回はこちらで質問させていただきます。 現在、複数のチェックボックスをワンクリックですべて選択する方法を調べています。 チェックボックスのNAMEがすべて同じ場合は、ちょっと検索すれば、すぐにサンプルスクリプトがたくさんヒットします。 複数選択可能なチェックボックスの場合も、document.form1.elements["sample_check[]"] というような記述で、チェックボックスの数がカウントできるということまでは判りました。 しかし、現在わたしが扱っているチェックボックス(下記をご参照ください)には、sampla_check[3] のように規則性のない数字が入っているのです。 (この数字を送信先で受けて、それをもとにmySQLのデータを更新するので省略できません) このような場合、どのようにしたら「チェックボックスをすべて選択」する機能を実装できるでしょうか。 本来、javascriptの入門書でも購入して、自分で学習すべき範疇のことかと思いますが、今すぐ答えが必要なので、どなたかお助けいただけないでしょうか。 <INPUT TYPE="checkbox" NAME="sample_check[3]" VALUE="TRUE"> 項目(3) <INPUT TYPE="checkbox" NAME="sample_check[7]" VALUE="TRUE"> 項目(7) <INPUT TYPE="checkbox" NAME="sample_check[12]" VALUE="TRUE"> 項目(12)

  • 大量のチェックボックス状態取得について

    質問させてください。 以下のようなHTML構造で連続している場合、 ID内全体のチェックボックスの状態を取得し、未チェックの物を非表示するにはどのようにすれば一番処理速度が速いのでしょうか? <div id="hoge1"> <ul> <li> <ul class="Parents"> <li class="child"><input type="checkbox" name="AAA"></li> <li class="child"><input type="checkbox" name="BBB"></li> <li class="child"><input type="checkbox" name="CCC"></li> <li class="child"><input type="checkbox" name="DDD"></li> </ul> </li> <li> <ul class="Parents"> <li class="child"><input type="checkbox" name="AAA"></li> <li class="child"><input type="checkbox" name="BBB"></li> <li class="child"><input type="checkbox" name="CCC"></li> <li class="child"><input type="checkbox" name="DDD"></li> </ul> </li> ~~~~~~~~~~~~    ※繰り返し ~~~~~~~~~~~~ </ul> </div> 現在はjQueryで$ (ul.Parents li.child)で全体をラップし、for文のループ内で$eq()で1件毎chekedを参照し、.hide()を行っています。 動作自体は問題ないのですが、処理速度の遅さが気になっています。 速い方法でればjQueryを使用しない方法でもかまいません。 どうかよろしくお願い致します。