こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

配列の複数の値のデータベースへの登録方法教えて下さい。

お世話になります。
チェックボックスの値を複数選択した値をデータベースに登録する方法を教えて下さい。
01.php内の下記のチェックボックスの値からチェックされたデータを02.phpにPOSTで値を渡しMysqlに登録したいのですが
どのように考えたらよいかわかりません。どうぞご指導をお願いします。


$labels = array("ド短期1日~OK", "週2、3日程度", "月~金曜日","土日祝日のみ", "毎日オールフリー");


if(is_array($_POST["working_days"] )){
$i=0;

foreach($labels as $label){

$checked = (ereg("[0-9]+",array_search($i,$_POST["working_days"])))? " checked":"";
echo "<label>\n<input type=\"checkbox\" name=\"working_days[]\" value=\"{$i}\" {$checked} />{$label}</label>";
$i++;
}


イメージとしては、正規化ということを以前に教えて頂きましたので、
テーブル「working_days」
フィールド「job_id」「day_id」
-------------------
job_id day_id
-------------------
c1050
c1051
c1053

というように登録をさせたいと思うのですが、わかりません。初歩的なこととは思いますが
どうぞよろしくお願いします。

02.php
$labels = array("ド短期1日~OK", "週2、3日程度", "月~金曜日","土日祝日のみ", "毎日オールフリー");

if(is_array($_POST["working_days"] )){
$i=0;

foreach($labels as $label){

$sql = "insert into working_days(job_id, day_id)values
('" . $job_id . "','" . $i . "')";
$res=mysql_query($sql);

$i++;
}
}

投稿日時 - 2007-09-12 10:45:43

QNo.3338044

すぐに回答ほしいです

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

$_POST["working_days"]をforeachでまわして
insertを複数回やってください

投稿日時 - 2007-09-12 13:28:59

補足

いつもありがとうございます。
一応、こんな感じが作ったのですが、データベースにうまく反映してくれません。原因がわからず、悩んでおります。
いつもお手数をお掛けしますが、よろしくお願い致します。

$job_id =$_POST["job_id"];
if(is_array($_POST["working_days"])){

$arr=$_POST["working_days"];
foreach($arr as $val){
$sql = "insert into working_days(job_id, day_id)values ('" . $job_id . "','" . $val . "')";
$res=mysql_query($sql);
}
}
問題点をご指摘頂けると有難いです。よろしくお願い致します。

投稿日時 - 2007-09-12 15:55:33

お礼

Mysqlの設定に問題があったようで、うまく登録することができました。
ありがとうございました。

投稿日時 - 2007-09-12 18:18:29

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問