プロが教える店舗&オフィスのセキュリティ対策術

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[]')";

配列を使うとまでは調べて分かったのですが、そこからがどうしても
分かりません。どなたご存知になるかたがおりましたら
是非お伺い出来ませんでしょうか。宜しくお願い致します。

A 回答 (4件)

> 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>

補足日時:2007/05/13 18:04
    • good
    • 0

> mysqlデーブルのカラム定義ですがこちらは check1 となっています。



check1カラムの属性(型と大きさ)は何ですか?

この回答への補足

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

補足日時:2007/05/13 15:21
    • good
    • 0

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

補足日時:2007/05/13 14:33
    • good
    • 0

さしあたり、tableというテーブルの定義を教えていただけますか?


複数のチェックボックスにチェックを入れたとき、
どのカラムにinsertしようとしているのかがよくわからないのです。

この回答への補足

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

補足日時:2007/05/13 13:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!