![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在、ユーザー登録処理の設計を行っております。
ユーザー登録情報に、「趣味」という項目があるのですが、
20個の種類が有ります。
私が想定しているのは、ユーザーテーブルに
20byte程の「趣味」列を作り、
ブラウザ側でチェックをした種類の値を見て、
その値のbyte目に"1"が立ち、それ以外は
"0"が立つという処理です。
(例)
<input type="checkbox" name="hobby" value="1">
<input type="checkbox" name="hobby" value="2">
<input type="checkbox" name="hobby" value="3">
・
・
・
<input type="checkbox" name="hobby" value="20">
↓(1番目、3番目、20番目にチェックが入った場合)
10100000000000000001 が、「趣味」列に入る
この作りをした際、値を格納するテーブルの列には、
「byteではなく、bitを使用した方がよい」という有り難いアドバイスを
頂いたのですが、実際にMySQLにBIT列を設けて、どのようにPHPから
データを格納すればよいか分かりませんでした(涙)。
どなたか、お教えいただけませんでしょうか。お願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
前回のやりとりは静観していました。
おそらく「ビットで持つ」と発言した方はC言語的な意味合いで言ったのだと思います。
趣味というひとつのカラム(これは例えばINT型にします)を設け、そのINT型のひとつの値に対してビットを立てて管理しようということだと推測されます。
つまり質問者さまの例で言えば、10100000000000000001 は16進数で表現すると A0001 となり更に10進数で表現すれば 655361 という数字になります。
これを趣味カラムにセットすればひとつのカラムで管理できるということになります。
たぶん前回の回答者さまはこういうことを言いたかったのではと推測できます。
しかし僕はあまりお勧めしません。
理由としては一目ではどこのビットが立っているかわからないからです。
ですので同じような考え方で趣味はCHAR型のカラムにし、文字列として 10100000000000000001 を持つ方がよいと思います。
こちらを推奨する理由にはもうひとつあって、扱えるビット数(厳密にはビットではないですが)が格段に多いということです。
INT型で持ってしまうと32ビット、つまり32個の趣味までしか管理できません。
その点CHAR型やTEXT型にすれば相当な数が扱えます。
ま、その分領域も食いますが気にするほどではないでしょう。
というわけで全然BIT型の回答ではないですが、参考までに。
ご回答、ありがとうございます!
私はまだまだ初心者プログラマですが、
その私であっても、明快な内容でした。
ご説明いただいただけでなく、
アドバイスもしていただき、感謝しております。
どうもありがとうございました。
とても参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セッションにIDを振って値を代入
-
PHPで画像の渡しが上手く行きま...
-
input nameで日本語を使うと
-
ラジオボタンをsessionで使いたい
-
HTMLで前の画面に戻る時、入力...
-
MySQLのBIT型列へのデータ格納...
-
phpでのメールフォームの作成に...
-
MySQLとPHP(HTML)の連携について
-
検索時の選択内容を保持する方法
-
POSTやGETの変数をフォーム無し...
-
入力フォーム→確認画面→送信画...
-
PHP ボタンが押されたら処理を...
-
phpでの複数選択チェックボック...
-
PHPのsubmitボタンが複数ある場合
-
テキストボックスとsubmitボタ...
-
パラメータが受け取れません。
-
PHP等を用いて在庫数を表示・管...
-
Flaskでサーバー立ち上げに関して
-
Submit(送信ボタン)を押した...
-
laravelを利用してコントロール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
ラジオボタンをsessionで使いたい
-
パラメーターを隠す
-
PHPで画像の渡しが上手く行きま...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
-
フォームでのリセットを使う方法
-
syntax error, unexpected '}' ...
-
PHPの関数実行
-
入力した部分を表示させたまま...
-
テキストボックスに初期値を入れる
-
phpで分からないエラーが出てし...
-
入力フォーム→確認画面→送信画...
-
画面が更新されてもチェックボ...
-
Javascript→PHPに...
-
配列をhiddenで
おすすめ情報