いつも助けていただきましてありがとうございます。
チェックボックスの値をMysqlに登録するところまではできましたが、
今度それを、確認・更新画面に読み込む方法でつまずいています。
どうぞご指導をお願い致します。
Mysqlから「days_id」の値が「0,2,5」と取得されても
実際のチェックが付くのが、「5」のみなってしまいます。
配列としてMysqlから値を取得する方法を教えて下さい。
$res = mysql_query($sql);
$i=0;
foreach($labels as $label){
while ($row = mysql_fetch_array($res)) {
$days_id = $row["days_id"];
}
if($i==$days_id){
$checked = " checked";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}else{
$checked = "";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}
$i++;
}
No.2ベストアンサー
- 回答日時:
根本的にアルゴリズムが変。
あと、phpには、有用な関数がいっぱいあるので、配列内に或る値が存在するかのチェック用関数もある。$res = mysql_query($sql);
// 先に下準備で、データを得る
$days_id=array();// 空配列宣言
while ($row = mysql_fetch_array($res)) {
$days_id[] = $row["days_id"];
// []内の添え字無しで、配列の要素に順に格納=array_push()
}
// 本番出力用ループ
$len = count($labels);
for($i=0; $i< $len; $i++){
// ↑ここは、foreach でもいいけど、どうせ配列のインデックスが必要なのだからforの方が自然。
// 配列$days_idの値に $iがあるかチェック
if( in_array( $i, $days_id) ){
$checked = " checked";
}else{$checked = " ";}
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$labels[$i]}</label>";
}
参考URL:http://php.benscom.com/manual/ja/function.in-arr …
ありがとうございます。
感動です。初心者で独学なので、ひとつひとつが勉強です。
アルゴリズムと言う言葉も聞いたことはありますが、
なんのことやらってレベルですので、また勉強していきたいと
思います。
丁寧にご回答を頂き、本当に感謝致します。
ありがとうございます。
No.1
- 回答日時:
phpは使ったことが無いのですが、}の場所、おかしくありませんか?
それに
>チェックが付くのが、「5」のみなってしまいます
というか、最後のデータだけ表示されませんか?
違っていたらすみません。
$res = mysql_query($sql);
$i=0;
foreach($labels as $label){
while ($row = mysql_fetch_array($res)) {
$days_id = $row["days_id"];
#}<-ここにあると、$days_idを空更新している(最後の$days_idを持って次へ、それも1度だけ)
if($i==$days_id){
$checked = " checked";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}else{
$checked = "";
echo "<label>\n<input type=\"checkbox\" name=\"job_type[]\" value=\"{$i}\" {$checked} />{$label}</label>";
}
$i++;
}<-ここじゃない?
}
$p.s.
$i=0の位置も何か・・・foreachの後じゃないと・・・
この回答への補足
ありがとうございまs。
>チェックが付くのが、「5」のみなってしまいます
というか、最後のデータだけ表示されませんか?
ご指摘の通りです。
いろいろ移動させてみたりしたのですが、
うまくいかず暗礁に乗り上げております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスでチェックし...
-
PHPのプルダウンメニューにDBの...
-
文字化けが解決できません。お...
-
PHP 10件表示 "前へ" "次へ"
-
チェックボックスによる複数の...
-
PHPについてなのですが未定義の...
-
JAVA SQLServerException 列名 ...
-
実行時エラー3131 FROM 句の構...
-
MySQLでデータベースにデータin...
-
codeigniter 複数モデルでトラ...
-
insert1つの処理でもトランザ...
-
Resource id #3 をフィールドの...
-
縦に長い<table>でなく横に長い...
-
csvをDBへ読み込んだら、NULLが...
-
変数にNULLを代入したい
-
ヒアドキュメントでSQLを書く事...
-
in 'where clause'のエラーの理由
-
VBAをつかってクエリの情報を抽...
-
SQLインジェクション対策
-
PHP+mysqlでSQL文に文字数制限...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで[]の使い方について
-
アラートでyes noを作りたいです。
-
DBから抜き出した値を表示する方法
-
checkboxクリック時、SQLを実行...
-
PHPのスタイルシート割り当て
-
DBで検索結果に該当するデータ...
-
WHILEで取り出しループ中にさら...
-
MYSQL、PHPを使ってのデータと...
-
phpでmysqlを使ってデータベー...
-
PHP・MySQL使用で、年齢制限を...
-
dbに登録したデータをphpのプル...
-
BLOBでの画像表示について
-
phpからdocument.writeで出力し...
-
チェックボックスの値の受け渡し
-
チェックボックスによる複数の...
-
同じページを再利用させたい
-
SELECT結果から動的にコンボボ...
-
チェックボックスでチェックし...
-
PHP 関数呼び出し後に配列添字...
-
空だと思ったのに・・・
おすすめ情報