チェックボックスでチェックした配列の値を データベースのカラム名と照らし合わせて
一致する所に「1」を入れたいのですが、うまくいきません。
PHP Version 5.1.6
MySQL - 5.0.45
で運用しています。
どうしたら、入れることができるでしょうか?
ご教授、よろしくお願いいたします。
1 送るページ
$sql = "select * from `class_tbl`";
$rest = mysql_query($sql, $con);
while($col = mysql_fetch_array($rest)) {
$classID = $col["classID"];
$class_name = $col["class_name"];
$sql = "select * from `member_sub_tbl` where `ID` ='$ID'";
$rst = mysql_query($sql, $con);
while($col = mysql_fetch_array($rst)) {
$kekka = $col["$classID"];
if($kekka==1){
echo <<<EOF
<input type="checkbox" name="classID[]" value="$classID" checked/> $class_name
EOF;
}
else{
echo <<<EOF
<input type="checkbox" name="classID[]" value="$classID" /> $class_name
EOF;
}
}
}
echo <<<EOF
<input name="ID" type="hidden" value="$ID" />
EOF;
2 受けるページ
$ID=$POST["ID"];
$classID=$POST["classID"];
var_dump($_REQUEST);
以下のように表示しています。
array(3) { ["classID"]=> array(10) { [0]=> string(4) "1010" [1]=> string(4) "1050" [2]=> string(4) "1110" [3]=> string(4) "1182" } ["sn"]=> string(2) "45" ["PHPSESSID"]=> string(32) "********************" }
「ID」の行に、配列の「1010」「1050」と 「member_sub_tbl(テーブル)」の「カラム名」を比較して、一致する所に「1」を入れたいのですがうまくいきません。
※update をしたいのです。
試行錯誤していますが、方法が分かりません。
ご教授、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
おっと。
失礼。$sql = sprintf("update `member_syb_tbl` set " . implode(',' ,$set) . " where `ID` = '%s'", mysql_real_escape_string($ID));
ですね。
とりあえず
$set = array();
foreach ($classID as $val) { $set[] = '`' . $val . '` = 1'; }
print implode(', ', $set);
で出力した内容がupdate文でセットしたい内容になっているか確認すればいいと思います。
ありがとうございます!
1010=1 と言うのを先に作って、それをupdate文に入れるということですね。
1行ずつ考えたら理解できました。
大変助かりました!!
今回は丁寧に2度まで教えて頂き、ありがとうございました。
No.1
- 回答日時:
ネイティブなMySQL関数は久しぶりですが、下記のような感じでどうでしょうか?
$set = array();
foreach ($classID as $val) { $set[] = '`' . $val . '` = 1'; }
$sql = sprintf("update `member_syb_tbl` set ' . implode(',' ,$set) . " where `ID` = '%s'", mysql_real_escape_string($ID));
本来はMySQLiかPDOで書き直したいところですが(汗
この回答への補足
すみません。。
今日一日、頑張って考えてみたいのですが理解できません。。。
恐れ入りますが、少し噛み砕いて教えて頂けるとありがたいです。
勝手な事言ってますが、よろしくお願いいたします。
※ソースをそのまま貼り付けると、エラー表示がでます。
>$sql = sprintf("update `member_syb_tbl` set ' . implode(',' ,$set) . " where `ID` = '%s'", mysql_real_escape_string($ID));
Parse error: syntax error, unexpected T_STRING
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで[]の使い方について
-
BLOBでの画像表示について
-
DBで検索結果に該当するデータ...
-
sortable ギブアップです…助け...
-
while文の中にwhile文を書きた...
-
PHPでMySQLのデータを2次元配...
-
PHP 10件表示 "前へ" "次へ"
-
ユーザー名、パスで認証して、...
-
MySQLに保存した画像を表示したい
-
PHP と MySQL でテーブルの行数...
-
PHPについてなのですが未定義の...
-
MySQLでデータベースにデータin...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
ResultSetインターフェイスでの...
-
insert1つの処理でもトランザ...
-
csvをDBへ読み込んだら、NULLが...
-
JAVA SQLServerException 列名 ...
-
VB.NET
-
エラー3011
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DBで検索結果に該当するデータ...
-
PHPで[]の使い方について
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
PHP、SQLite3のデーターでログ...
-
dbに登録したデータをphpのプル...
-
checkboxクリック時、SQLを実行...
-
PHPでMY SQLの連想配列をリンク...
-
文字化けが解決できません。お...
-
PHPでMySQLデータを呼び出し、w...
-
SELECT結果から動的にコンボボ...
-
php ログインフォーム作成
-
VBA初心者です。
-
チェックボックスでチェックし...
-
sortableを使用したデータのUPDATE
-
php mysqlで作ったデータをgoog...
-
mysql_insert_id()の使い方
-
PHPとSmartyを使い、データベー...
-
MySQLに保存した画像を表示したい
-
PHP+MySQLでの配列のinsert文に...
おすすめ情報