dポイントプレゼントキャンペーン実施中!

チェックボックスで複数選択されたチェックボックスの値を配列としてmysqlに保存したいのですがどうも上手くいきません。いろいろweb上で探してみましたが、serialize/unserialize関数?を使うのでしょうか?ちなみに抽出も上手くいきません。どなたか教えていただけませんか?宜しくお願いします。以下スクリプトの一部です。

//配列
<input type='checkbox' name='op[]' value='ac'>ac
<input type='checkbox' name='op[]' value='pw'>pw
<input type='checkbox' name='op[]' value='cd'>cd

//データベースに登録
$sql="insert into test (test) values (\"$op\")";
mysql_query($sql,$con);

//データベースから配列として抽出
$sql = "select * from op";
$rst = mysql_query($sql,$con);
$col = mysql_fetch_array($rst);
$op = $col[op];

A 回答 (1件)

配列として保存されたものを直接書き出そうとすると、


「Array」としか表示されません。
保存しようとする場合は、その都度保存されたデータを展開しなくてはいけません。
例えばカンマ区切りにして保存してやり、取り出すときにカンマでばらしてやればいいわけです。

例)
# 登録
$sql="insert into test (test) values (\"" .implode(",", $op) ."\")";

# 抽出
(略)
$op = split(",",$col['test']);
print_r($op);

この回答への補足

早速のご回答有難うございます。
ご指摘のとおり試してみると、見事にmysqlに保存することが出来ました。ただ抽出した際に上手く配列になっておらず、
$op[] = split(",",$col['test']);
print_r($op);
としましたが、表示が
Array([0]=>ac [1]=>pw [2]=>cd [3]=>Array([0]=> N;))
とキー値[3]に余計なものが入ってしまいます。
これはこれで正しいのでしょうか?

補足日時:2006/02/03 11:14
    • good
    • 0
この回答へのお礼

すみません。解決しました。mysql上の問題でした。
わけの分からない補足質問でご迷惑をお掛けしましたが、本当に有難うごさいました。

お礼日時:2006/02/03 11:45

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