
チェックボックスでチェックした配列の値を データベースのカラム名と照らし合わせて
一致する所に「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を探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysql_fetch_assoc()の非推奨
-
DBで検索結果に該当するデータ...
-
PHPとMysqlによる正規表現について
-
取得データの置き換え方法
-
PHPでMySQLデータを呼び出し、w...
-
SQLのSUM関数で取得した値を参...
-
PHP MYSQLから呼び出し後の比較
-
PHPでいいね機能を作りたいので...
-
テキストボックスに入れた内容...
-
SQLiteのデータベースについて
-
OracleからAccessへのインポート
-
MySqlのテーブルのサイズを取得...
-
insert1つの処理でもトランザ...
-
PHP+MySQLでの検索結果の横並び...
-
画像をDBに登録する方法
-
mysql+php 日付別料金データで...
-
一度検索されたものに対するソ...
-
Pro*Cの構文エラー
-
PHP&MySQLでの文字列+数列の一...
-
PHPでフォームからデータDBに書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アラートでyes noを作りたいです。
-
dbに登録したデータをphpのプル...
-
文字化けが解決できません。お...
-
VBA初心者です。
-
phpでmysqlを使ってデータベー...
-
DBで検索結果に該当するデータ...
-
smartyでMySQLから連想配列取り...
-
PHPのプルダウンメニューにDBの...
-
[PHP+MySQL] データをランダム...
-
sortable ギブアップです…助け...
-
mysqlから取得した配列をカンマ...
-
sortableを使用したデータのUPDATE
-
PHPでMySQLデータを呼び出し、w...
-
PHP+MySQLでの配列のinsert文に...
-
XML初心者です。
-
検索結果($_POST)が2ページ目...
-
smartyのforeachの使い方?
-
SELECT結果から動的にコンボボ...
-
pg_queryの結果を2回とりだす...
-
PEARのPagerの設定の仕方
おすすめ情報