• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列としてMysqlから値を取得する方法を教えて下さい。)

配列としてMysqlから値を取得する方法を教えて下さい。

このQ&Aのポイント
  • Mysqlから配列として値を取得する方法について教えてください。
  • 確認・更新画面でMysqlから値を読み込む方法について教えてください。
  • チェックボックスの値が正しく取得できない場合の解決方法について教えてください。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答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-array.php,http://php.benscom.com/manual/ja/function.array-push.php
nicolemen
質問者

お礼

ありがとうございます。 感動です。初心者で独学なので、ひとつひとつが勉強です。 アルゴリズムと言う言葉も聞いたことはありますが、 なんのことやらってレベルですので、また勉強していきたいと 思います。 丁寧にご回答を頂き、本当に感謝致します。 ありがとうございます。

その他の回答 (1)

回答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の後じゃないと・・・

nicolemen
質問者

補足

ありがとうございまs。 >チェックが付くのが、「5」のみなってしまいます というか、最後のデータだけ表示されませんか? ご指摘の通りです。 いろいろ移動させてみたりしたのですが、 うまくいかず暗礁に乗り上げております。

関連するQ&A