php チェックボックスの値をmysqlに登録する方法
php勉強したてで、今DBとの接続を勉強しているのですが、どうにもチェックボックスの値が登録できる記述がわかりません。
どうすればチェックボックスの値をとうろくできるでしょうか?
エラーも出ています。
チェックいれてると
Notice: Array to string conversion
チェック何もしていないと
Notice: Undefined index: q1
というエラーがでてきます。
↓PHPファイルの方にはチェックボックス以外の記述も載せてます。チェックボックス関連をコメントアウトにしてやってみると、それ以外の項目はちゃんとmysqlに登録できていました。
自分なりに色々しらべてみたはいいのですが全然うまくいきませんでした。joinやimprodeやarrayなどなど、、、使い方や記述の場所がいけなかったのかもですが大分躓いているので、アドバイスなどいただけると助かります。
<div class="questionnaire">
アンケート:好きな色(複数選択可)
<input type="checkbox" name="q1[]" value="赤" id="color1" ><label for="color1">赤</label>
<input type="checkbox" name="q1[]" value="青" id="color2" ><label for="color2">青</label>
<input type="checkbox" name="q1[]" value="黄" id="color3" ><label for="color3">黄</label>
<input type="checkbox" name="q1[]" value="緑" id="color4" ><label for="color4">緑</label>
<input type="checkbox" name="q1[]" value="紫" id="color5" ><label for="color5">紫</label>
</div>
PHPファイルです
<body>
<?php
$con = mysqli_connect('localhost','root','');
if (!$con) {
exit('データベースに接続できませんでした。');
}
$result = mysqli_select_db($con,'task_ex1_db');
if (!$result) {
exit('データベースを選択できませんでした。');
}
$result = mysqli_query($con,'SET NAMES utf8');
if (!$result) {
exit('文字コードを指定できませんでした。');
}
$name_form = addslashes($_REQUEST['name_form']);
$gender = addslashes($_REQUEST['gender']);
$age = addslashes($_REQUEST['age']);
$q1 = $_POST['q1'];
// $q1 = implode(',', $_POST['q1']);
$free_space = addslashes($_REQUEST['free_space']);
$result = mysqli_query($con,"INSERT INTO personaldata(name_form, gender,
age, q1, free_space) VALUES('$name_form', '$gender', '$age', '$q1',
'$free_space')");
if (!$result) {
exit('データを登録できませんでした。');
}
$con = mysqli_close($con);
if (!$con) {
exit('データベースとの接続を閉じられませんでした。');
}
?>
<p>登録が完了しました。<br /><a href="../task_ex1.html">戻る</a></p>
</body>